testng+reportng进行单元测试并生成好看的报告

这篇具有很好参考价值的文章主要介绍了testng+reportng进行单元测试并生成好看的报告。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

TestNg的来源:

JUnit 框架是 Java 语言单元测试当前的一站式解决方案。这个框架值得称赞,因为它把测试驱动的开发思想介绍给 Java 开发人员并教给他们如何有效地编写单元测试。但是,在过去的几年中,JUnit 的改进不大;所以,为当今复杂的环境编写测试已经变成一个越来越困难的任务,即 JUnit 必须与其他一些补充性测试框架集成起来。而 TestNG 是一个测试 Java 应用程序的新框架。TestNG 强大、创新、可扩展、灵活。

如何使用:

在pom.xml里面导包

<dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>7.0.0</version>
</dependency>

测试代码

@SpringBootTest
public class IUserServiceImplTest extends AbstractTestNGSpringContextTests {

    @Autowired
    private IUserService userService;

    @BeforeGroups("testAdd")
    public void testAdd() throws Exception {
        User user = new User();
        user.setUsername("root");
        user.setPassword("123456");
        userService.add(user);
    }

    @Test
    public void testDelete() throws Exception {
        userService.delete(1);
    }

    @Test(groups = "testAdd")
    public void testGetById() throws Exception {
        User user = userService.getById(5);
        System.out.println(user);
    }

    @Test
    public void testUpdate() throws Exception {
    }
}

如果使用testng.xml 默认的报告模板, 报告看起来不那么花哨, 如下图:
testng+reportng进行单元测试并生成好看的报告

testng+reportng进行单元测试并生成好看的报告

为了花哨点, 可以使用ReportNg

新建一个TestReport.java

package top.cdzzh.utils;


import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.testng.*;
import org.testng.xml.XmlSuite;

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;

public class TestReport  implements IReporter {
    private long currentTime = System.currentTimeMillis();
    private SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年-MM月-dd日-HH时mm分ss秒");
    private Date date = new Date(currentTime);
    private String reportdate = formatter.format(date);
    // 定义生成测试报告的路径和文件名,为兼容Windows和Linux此处使用File.separator代替分隔符
    private String path = System.getProperty("user.dir")+ File.separator+reportdate+".html";
    // 定义html样式模板所在路径
    private String templatePath = "你的template文件所在的文字";
    
    private int testsPass = 0;
 
    private int testsFail = 0;
 
    private int testsSkip = 0;
    
    private String beginTime;
    
    private long totalTime;
    
    private String name = "PaaS平台自动化测试";
    /**
    public TestReport(){
        long currentTime = System.currentTimeMillis();
        SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年-MM月-dd日-HH时mm分ss秒");
        Date date = new Date(currentTime);
        name = formatter.format(date);
    }
    
    public TestReport(String name){
        this.name = name;
        if(this.name==null){
            long currentTime = System.currentTimeMillis();
            SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年-MM月-dd日-HH时mm分ss秒");
            Date date = new Date(currentTime);
            this.name = formatter.format(date);
        }
    }
    */
    @Override
    public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) {
        List<ITestResult> list = new ArrayList<ITestResult>();
        for (ISuite suite : suites) {
            Map<String, ISuiteResult> suiteResults = suite.getResults();
            for (ISuiteResult suiteResult : suiteResults.values()) {
                ITestContext testContext = suiteResult.getTestContext();
                IResultMap passedTests = testContext.getPassedTests();
                testsPass = testsPass + passedTests.size();
                IResultMap failedTests = testContext.getFailedTests();
                testsFail = testsFail + failedTests.size();
                IResultMap skippedTests = testContext.getSkippedTests();
                testsSkip = testsSkip + skippedTests.size();
                IResultMap failedConfig = testContext.getFailedConfigurations();
                list.addAll(this.listTestResult(passedTests));
                list.addAll(this.listTestResult(failedTests));
                list.addAll(this.listTestResult(skippedTests));
                list.addAll(this.listTestResult(failedConfig));
            }
        }
        this.sort(list);
        this.outputResult(list);
    }
 
    private ArrayList<ITestResult> listTestResult(IResultMap resultMap) {
        Set<ITestResult> results = resultMap.getAllResults();
        return new ArrayList<ITestResult>(results);
    }
 
    private void sort(List<ITestResult> list) {
        Collections.sort(list, new Comparator<ITestResult>() {
            @Override
            public int compare(ITestResult r1, ITestResult r2) {
                if (r1.getStartMillis() > r2.getStartMillis()) {
                    return 1;
                } else {
                    return -1;
                }
            }
        });
    }
 
    private void outputResult(List<ITestResult> list) {
        try {
            List<ReportInfo> listInfo = new ArrayList<ReportInfo>();
            int index = 0;
            for (ITestResult result : list) {
                String tn = result.getTestContext().getCurrentXmlTest().getParameter("testCase");
                if(index==0){
                    SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss");
                    beginTime = formatter.format(new Date(result.getStartMillis()));
                    index++;
                }
                long spendTime = result.getEndMillis() - result.getStartMillis();
                totalTime += spendTime;
                String status = this.getStatus(result.getStatus());
                List<String> log = Reporter.getOutput(result);
                for (int i = 0; i < log.size(); i++) {
                    log.set(i, log.get(i).replaceAll("\"", "\\\\\""));
                }
                Throwable throwable = result.getThrowable();
                if(throwable!=null){
                    log.add(throwable.toString().replaceAll("\"", "\\\\\""));
                    StackTraceElement[] st = throwable.getStackTrace();
                    for (StackTraceElement stackTraceElement : st) {
                        log.add(("    " + stackTraceElement).replaceAll("\"", "\\\\\""));
                    }
                }
                ReportInfo info = new ReportInfo();
                info.setName(tn);
                info.setSpendTime(spendTime+"ms");
                info.setStatus(status);
                info.setClassName(result.getInstanceName());
                info.setMethodName(result.getName());
                info.setDescription(result.getMethod().getDescription());
                info.setLog(log);
                listInfo.add(info);
            }
            Map<String, Object> result = new HashMap<String, Object>();
            result.put("testName", name);
            result.put("testPass", testsPass);
            result.put("testFail", testsFail);
            result.put("testSkip", testsSkip);
            result.put("testAll", testsPass+testsFail+testsSkip);
            result.put("beginTime", beginTime);
            result.put("totalTime", totalTime+"ms");
            result.put("testResult", listInfo);
            Gson gson = new GsonBuilder().disableHtmlEscaping().setPrettyPrinting().create();
            String template = this.read(templatePath);
            BufferedWriter output = new BufferedWriter( new OutputStreamWriter(new FileOutputStream(new File(path)),"UTF-8"));
            template = template.replaceFirst("\\$\\{resultData\\}", Matcher.quoteReplacement(gson.toJson(result)));
            output.write(template);
            output.flush();
            output.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
 
    }
 
    private String getStatus(int status) {
        String statusString = null;
        switch (status) {
        case 1:
            statusString = "成功";
            break;
        case 2:
            statusString = "失败";
            break;
        case 3:
            statusString = "跳过";
            break;
        default:
            break;
        }
        return statusString;
    }
    
    public static class ReportInfo {
        
        private String name;
        
        private String className;
    
        private String methodName;
        
        private String description;
        
        private String spendTime;
                
        private String status;
        
        private List<String> log;
 
        public String getName() {
            return name;
        }
 
        public void setName(String name) {
            this.name = name;
        }
 
        public String getClassName() {
            return className;
        }
 
        public void setClassName(String className) {
            this.className = className;
        }
 
        public String getMethodName() {
            return methodName;
        }
 
        public void setMethodName(String methodName) {
            this.methodName = methodName;
        }
 
        public String getSpendTime() {
            return spendTime;
        }
 
        public void setSpendTime(String spendTime) {
            this.spendTime = spendTime;
        }
 
        public String getStatus() {
            return status;
        }
 
        public void setStatus(String status) {
            this.status = status;
        }
 
        public List<String> getLog() {
            return log;
        }
 
        public void setLog(List<String> log) {
            this.log = log;
        }
 
        public String getDescription() {
            return description;
        }
 
        public void setDescription(String description) {
            this.description = description;
        }
        
    }
    
    private String read(String path) {
        File file = new File(path);
        InputStream is = null;
        StringBuffer sb = new StringBuffer();
        try {
            is = new FileInputStream(file);
            int index = 0;
            byte[] b = new byte[1024];
            while ((index = is.read(b)) != -1) {
                sb.append(new String(b, 0, index));
            }
            return sb.toString();
        } catch (FileNotFoundException e) {
 
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (is != null) {
                    is.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
}


template文件

<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>测试报告</title>
    <link href="https://cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdn.bootcss.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet">
    <link href="https://cdn.bootcss.com/animate.css/3.5.2/animate.min.css" rel="stylesheet">
    <link href="https://cdn.bootcss.com/chosen/1.8.2/chosen.css" rel="stylesheet">
    <base target="_blank">
    <style type="text/css">
        h1, h2, h3, h4, h5, h6 {
            font-weight: 100
        }

        p {
            word-wrap: break-word;
            word-break: break-all;
            overflow: hidden;
        }

        h1 {
            font-size: 30px
        }

        h2 {
            font-size: 24px
        }

        h3 {
            font-size: 16px
        }

        h4 {
            font-size: 14px
        }

        h5 {
            font-size: 12px
        }

        h6 {
            font-size: 10px
        }

        h3, h4, h5 {
            margin-top: 5px;
            font-weight: 600
        }

        a:focus {
            outline: 0
        }

        .nav > li > a {
            color: #a7b1c2;
            font-weight: 600;
            padding: 14px 20px 14px 25px
        }

        .nav li > a {
            display: block
        }

        .nav.navbar-right > li > a {
            color: #999c9e
        }

        .nav > li.active > a {
            color: #fff
        }

        .navbar-default .nav > li > a:focus, .navbar-default .nav > li > a:hover {
            background-color: #293846;
            color: #fff
        }

        .nav .open > a, .nav .open > a:focus, .nav .open > a:hover {
            background: #fff
        }

        .nav > li > a i {
            margin-right: 6px
        }

        .navbar {
            border: 0
        }

        .navbar-default {
            background-color: transparent;
            border-color: #2f4050;
            position: relative
        }

        .navbar-top-links li {
            display: inline-block
        }

        .navbar-top-links li:last-child {
            margin-right: 30px
        }

        body.body-small .navbar-top-links li:last-child {
            margin-right: 10px
        }

        .navbar-top-links li a {
            padding: 20px 10px;
            min-height: 50px
        }

        .dropdown-menu {
            border: medium none;
            display: none;
            float: left;
            font-size: 12px;
            left: 0;
            list-style: none outside none;
            padding: 0;
            position: absolute;
            text-shadow: none;
            top: 100%;
            z-index: 1000;
            border-radius: 0;
            box-shadow: 0 0 3px rgba(86, 96, 117, .3)
        }

        .dropdown-menu > li > a {
            border-radius: 3px;
            color: inherit;
            line-height: 25px;
            margin: 4px;
            text-align: left;
            font-weight: 400
        }

        .dropdown-menu > li > a.font-bold {
            font-weight: 600
        }

        .navbar-top-links .dropdown-menu li {
            display: block
        }

        .navbar-top-links .dropdown-menu li:last-child {
            margin-right: 0
        }

        .navbar-top-links .dropdown-menu li a {
            padding: 3px 20px;
            min-height: 0
        }

        .navbar-top-links .dropdown-menu li a div {
            white-space: normal
        }

        .navbar-top-links .dropdown-alerts, .navbar-top-links .dropdown-messages, .navbar-top-links .dropdown-tasks {
            width: 310px;
            min-width: 0
        }

        .navbar-top-links .dropdown-messages {
            margin-left: 5px
        }

        .navbar-top-links .dropdown-tasks {
            margin-left: -59px
        }

        .navbar-top-links .dropdown-alerts {
            margin-left: -123px
        }

        .navbar-top-links .dropdown-user {
            right: 0;
            left: auto
        }

        .dropdown-alerts, .dropdown-messages {
            padding: 10px
        }

        .dropdown-alerts li a, .dropdown-messages li a {
            font-size: 12px
        }

        .dropdown-alerts li em, .dropdown-messages li em {
            font-size: 10px
        }

        .nav.navbar-top-links .dropdown-alerts a {
            font-size: 12px
        }

        .nav-header {
            padding: 33px 25px
        }

        .nav > li.active {
            border-left: 4px solid #19aa8d;
            background: #293846
        }

        .nav.nav-second-level > li.active {
            border: none
        }

        .nav.nav-second-level.collapse[style] {
            height: auto !important
        }

        .nav-header a {
            color: #DFE4ED
        }

        .nav-header .text-muted {
            color: #8095a8
        }

        .minimalize-styl-2 {
            padding: 4px 12px;
            margin: 14px 5px 5px 20px;
            font-size: 14px;
            float: left
        }

        .navbar-form-custom {
            float: left;
            height: 50px;
            padding: 0;
            width: 200px;
            display: inline-table
        }

        .navbar-form-custom .form-group {
            margin-bottom: 0
        }

        .nav.navbar-top-links a {
            font-size: 14px
        }

        .navbar-form-custom .form-control {
            background: none repeat scroll 0 0 rgba(0, 0, 0, 0);
            border: medium none;
            font-size: 14px;
            height: 60px;
            margin: 0;
            z-index: 2000
        }

        .count-info .label {
            line-height: 12px;
            padding: 1px 5px;
            position: absolute;
            right: 6px;
            top: 12px
        }

        .arrow {
            float: right;
            margin-top: 2px
        }

        .fa.arrow:before {
            content: "\f104"
        }

        .active > a > .fa.arrow:before {
            content: "\f107"
        }

        .nav-second-level li, .nav-third-level li {
            border-bottom: none !important
        }

        .nav-second-level li a {
            padding: 7px 15px 7px 10px;
            padding-left: 52px
        }

        .nav-third-level li a {
            padding-left: 62px
        }

        .nav-second-level li:last-child {
            margin-bottom: 10px
        }

        .mini-navbar .nav li:focus > .nav-second-level, body:not(.fixed-sidebar):not(.canvas-menu).mini-navbar .nav li:hover > .nav-second-level {
            display: block;
            border-radius: 0 2px 2px 0;
            min-width: 140px;
            height: auto
        }

        body.mini-navbar .navbar-default .nav > li > .nav-second-level li a {
            font-size: 12px;
            border-radius: 0 2px 2px 0
        }

        .fixed-nav .slimScrollDiv #side-menu {
            padding-bottom: 60px;
            position: relative
        }

        .slimScrollDiv > * {
            overflow: hidden
        }

        .mini-navbar .nav-second-level li a {
            padding: 10px 10px 10px 15px
        }

        .canvas-menu.mini-navbar .nav-second-level {
            background: #293846
        }

        .mini-navbar li.active .nav-second-level {
            left: 65px
        }

        .navbar-default .special_link a {
            background: #1ab394;
            color: #fff
        }

        .navbar-default .special_link a:hover {
            background: #17987e !important;
            color: #fff
        }

        .navbar-default .special_link a span.label {
            background: #fff;
            color: #1ab394
        }

        .navbar-default .landing_link a {
            background: #1cc09f;
            color: #fff
        }

        .navbar-default .landing_link a:hover {
            background: #1ab394 !important;
            color: #fff
        }

        .navbar-default .landing_link a span.label {
            background: #fff;
            color: #1cc09f
        }

        .logo-element {
            text-align: center;
            font-size: 18px;
            font-weight: 600;
            color: #fff;
            display: none;
            padding: 18px 0
        }

        .pace-done #page-wrapper, .pace-done .footer, .pace-done .nav-header, .pace-done .navbar-static-side, .pace-done li.active {
            -webkit-transition: all .5s;
            transition: all .5s
        }

        .navbar-fixed-top {
            -webkit-transition-duration: .5s;
            transition-duration: .5s;
            z-index: 2030
        }

        .navbar-fixed-top, .navbar-static-top {
            background: #f3f3f4
        }

        .fixed-nav #wrapper {
            padding-top: 60px;
            box-sizing: border-box
        }

        .fixed-nav .minimalize-styl-2 {
            margin: 14px 5px 5px 15px
        }

        .body-small .navbar-fixed-top {
            margin-left: 0
        }

        body.mini-navbar .navbar-static-side {
            width: 70px
        }

        body.mini-navbar .nav-label, body.mini-navbar .navbar-default .nav li a span, body.mini-navbar .profile-element {
            display: none
        }

        body.canvas-menu .profile-element {
            display: block
        }

        body:not(.fixed-sidebar):not(.canvas-menu).mini-navbar .nav-second-level {
            display: none
        }

        body.mini-navbar .navbar-default .nav > li > a {
            font-size: 16px
        }

        body.mini-navbar .logo-element {
            display: block
        }

        body.canvas-menu .logo-element {
            display: none
        }

        body.mini-navbar .nav-header {
            padding: 0;
            background-color: #1ab394
        }

        body.canvas-menu .nav-header {
            padding: 33px 25px
        }

        body.mini-navbar #page-wrapper {
            margin: 0 0 0 70px
        }

        body.canvas-menu.mini-navbar #page-wrapper, body.canvas-menu.mini-navbar .footer {
            margin: 0
        }

        body.canvas-menu .navbar-static-side, body.fixed-sidebar .navbar-static-side {
            position: fixed;
            width: 220px;
            z-index: 2001;
            height: 100%
        }

        body.fixed-sidebar.mini-navbar .navbar-static-side {
            width: 70px
        }

        body.body-small.fixed-sidebar.mini-navbar #page-wrapper, body.fixed-sidebar.mini-navbar #page-wrapper {
            margin: 0 0 0 70px
        }

        body.body-small.fixed-sidebar.mini-navbar .navbar-static-side {
            width: 70px
        }

        .fixed-sidebar.mini-navbar .nav li > .nav-second-level {
            display: none
        }

        .fixed-sidebar.mini-navbar .nav li.active {
            border-left-width: 0
        }

        .canvas-menu.mini-navbar .nav li:hover > .nav-second-level, .fixed-sidebar.mini-navbar .nav li:hover > .nav-second-level {
            position: absolute;
            left: 70px;
            top: 0;
            background-color: #2f4050;
            padding: 10px 10px 0;
            font-size: 12px;
            display: block;
            min-width: 140px;
            border-radius: 2px
        }

        body.fixed-sidebar.mini-navbar .navbar-default .nav > li > .nav-second-level li a {
            font-size: 12px;
            border-radius: 3px
        }

        body.canvas-menu.mini-navbar .navbar-default .nav > li > .nav-second-level li a {
            font-size: 13px;
            border-radius: 3px
        }

        .canvas-menu.mini-navbar .nav-second-level li a, .fixed-sidebar.mini-navbar .nav-second-level li a {
            padding: 10px 10px 10px 15px
        }

        .canvas-menu.mini-navbar .nav-second-level, .fixed-sidebar.mini-navbar .nav-second-level {
            position: relative;
            padding: 0;
            font-size: 13px
        }

        .canvas-menu.mini-navbar li.active .nav-second-level, .fixed-sidebar.mini-navbar li.active .nav-second-level {
            left: 0
        }

        body.canvas-menu nav.navbar-static-side {
            z-index: 2001;
            background: #2f4050;
            height: 100%;
            position: fixed;
            display: none
        }

        body.canvas-menu.mini-navbar nav.navbar-static-side {
            display: block;
            width: 70px
        }

        .top-navigation #page-wrapper {
            margin-left: 0
        }

        .top-navigation .navbar-nav .dropdown-menu > .active > a {
            background: #fff;
            color: #1ab394;
            font-weight: 700
        }

        .white-bg .navbar-fixed-top, .white-bg .navbar-static-top {
            background: #fff
        }

        .top-navigation .navbar {
            margin-bottom: 0
        }

        .top-navigation .nav > li > a {
            padding: 15px 20px;
            color: #676a6c
        }

        .top-navigation .nav > li a:focus, .top-navigation .nav > li a:hover {
            background: #fff;
            color: #1ab394
        }

        .top-navigation .nav > li.active {
            background: #fff;
            border: none
        }

        .top-navigation .nav > li.active > a {
            color: #1ab394
        }

        .top-navigation .navbar-right {
            padding-right: 10px
        }

        .top-navigation .navbar-nav .dropdown-menu {
            box-shadow: none;
            border: 1px solid #e7eaec
        }

        .top-navigation .dropdown-menu > li > a {
            margin: 0;
            padding: 7px 20px
        }

        .navbar .dropdown-menu {
            margin-top: 0
        }

        .top-navigation .navbar-brand {
            background: #1ab394;
            color: #fff;
            padding: 15px 25px
        }

        .top-navigation .navbar-top-links li:last-child {
            margin-right: 0
        }

        .body-small.fixed-sidebar.mini-navbar .top-navigation #page-wrapper, .canvas-menu #page-wrapper, .mini-navbar .top-navigation #page-wrapper, .top-navigation.body-small.fixed-sidebar.mini-navbar #page-wrapper, .top-navigation.mini-navbar #page-wrapper {
            margin: 0
        }

        .fixed-nav #wrapper.top-navigation, .top-navigation.fixed-nav #wrapper {
            margin-top: 50px
        }

        .top-navigation .footer.fixed {
            margin-left: 0 !important
        }

        .top-navigation .wrapper.wrapper-content {
            padding: 40px
        }

        .body-small .top-navigation .wrapper.wrapper-content, .top-navigation.body-small .wrapper.wrapper-content {
            padding: 40px 0
        }

        .navbar-toggle {
            color: #fff;
            padding: 6px 12px;
            font-size: 14px
        }

        .top-navigation .navbar-nav .open .dropdown-menu .dropdown-header, .top-navigation .navbar-nav .open .dropdown-menu > li > a {
            padding: 10px 15px 10px 20px
        }

        @media (max-width: 768px) {
            .top-navigation .navbar-header {
                display: block;
                float: none
            }
        }

        .menu-visible-lg, .menu-visible-md {
            display: none !important
        }

        @media (min-width: 1200px) {
            .menu-visible-lg {
                display: block !important
            }
        }

        @media (min-width: 992px) {
            .menu-visible-md {
                display: block !important
            }
        }

        @media (max-width: 767px) {
            .menu-visible-lg, .menu-visible-md {
                display: block !important
            }
        }

        .btn {
            border-radius: 3px
        }

        .float-e-margins .btn {
            margin-bottom: 5px
        }

        .btn-w-m {
            min-width: 120px
        }

        .btn-primary.btn-outline {
            color: #1ab394
        }

        .btn-success.btn-outline {
            color: #1c84c6
        }

        .btn-info.btn-outline {
            color: #23c6c8
        }

        .btn-warning.btn-outline {
            color: #f8ac59
        }

        .btn-danger.btn-outline {
            color: #ed5565
        }

        .btn-danger.btn-outline:hover, .btn-info.btn-outline:hover, .btn-primary.btn-outline:hover, .btn-success.btn-outline:hover, .btn-warning.btn-outline:hover {
            color: #fff
        }

        .btn-primary {
            background-color: #1ab394;
            border-color: #1ab394;
            color: #FFF
        }

        .btn-primary.active, .btn-primary:active, .btn-primary:focus, .btn-primary:hover, .open .dropdown-toggle.btn-primary {
            background-color: #18a689;
            border-color: #18a689;
            color: #FFF
        }

        .btn-primary.active, .btn-primary:active, .open .dropdown-toggle.btn-primary {
            background-image: none
        }

        .btn-primary.active[disabled], .btn-primary.disabled, .btn-primary.disabled.active, .btn-primary.disabled:active, .btn-primary.disabled:focus, .btn-primary.disabled:hover, .btn-primary[disabled], .btn-primary[disabled]:active, .btn-primary[disabled]:focus, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary.active, fieldset[disabled] .btn-primary:active, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary:hover {
            background-color: #1dc5a3;
            border-color: #1dc5a3
        }

        .btn-success {
            background-color: #1c84c6;
            border-color: #1c84c6;
            color: #FFF
        }

        .btn-success.active, .btn-success:active, .btn-success:focus, .btn-success:hover, .open .dropdown-toggle.btn-success {
            background-color: #1a7bb9;
            border-color: #1a7bb9;
            color: #FFF
        }

        .btn-success.active, .btn-success:active, .open .dropdown-toggle.btn-success {
            background-image: none
        }

        .btn-success.active[disabled], .btn-success.disabled, .btn-success.disabled.active, .btn-success.disabled:active, .btn-success.disabled:focus, .btn-success.disabled:hover, .btn-success[disabled], .btn-success[disabled]:active, .btn-success[disabled]:focus, .btn-success[disabled]:hover, fieldset[disabled] .btn-success, fieldset[disabled] .btn-success.active, fieldset[disabled] .btn-success:active, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success:hover {
            background-color: #1f90d8;
            border-color: #1f90d8
        }

        .btn-info {
            background-color: #23c6c8;
            border-color: #23c6c8;
            color: #FFF
        }

        .btn-info.active, .btn-info:active, .btn-info:focus, .btn-info:hover, .open .dropdown-toggle.btn-info {
            background-color: #21b9bb;
            border-color: #21b9bb;
            color: #FFF
        }

        .btn-info.active, .btn-info:active, .open .dropdown-toggle.btn-info {
            background-image: none
        }

        .btn-info.active[disabled], .btn-info.disabled, .btn-info.disabled.active, .btn-info.disabled:active, .btn-info.disabled:focus, .btn-info.disabled:hover, .btn-info[disabled], .btn-info[disabled]:active, .btn-info[disabled]:focus, .btn-info[disabled]:hover, fieldset[disabled] .btn-info, fieldset[disabled] .btn-info.active, fieldset[disabled] .btn-info:active, fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info:hover {
            background-color: #26d7d9;
            border-color: #26d7d9
        }

        .btn-default {
            background-color: #c2c2c2;
            border-color: #c2c2c2;
            color: #FFF
        }

        .btn-default.active, .btn-default:active, .btn-default:focus, .btn-default:hover, .open .dropdown-toggle.btn-default {
            background-color: #bababa;
            border-color: #bababa;
            color: #FFF
        }

        .btn-default.active, .btn-default:active, .open .dropdown-toggle.btn-default {
            background-image: none
        }

        .btn-default.active[disabled], .btn-default.disabled, .btn-default.disabled.active, .btn-default.disabled:active, .btn-default.disabled:focus, .btn-default.disabled:hover, .btn-default[disabled], .btn-default[disabled]:active, .btn-default[disabled]:focus, .btn-default[disabled]:hover, fieldset[disabled] .btn-default, fieldset[disabled] .btn-default.active, fieldset[disabled] .btn-default:active, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default:hover {
            background-color: #ccc;
            border-color: #ccc
        }

        .btn-warning {
            background-color: #f8ac59;
            border-color: #f8ac59;
            color: #FFF
        }

        .btn-warning.active, .btn-warning:active, .btn-warning:focus, .btn-warning:hover, .open .dropdown-toggle.btn-warning {
            background-color: #f7a54a;
            border-color: #f7a54a;
            color: #FFF
        }

        .btn-warning.active, .btn-warning:active, .open .dropdown-toggle.btn-warning {
            background-image: none
        }

        .btn-warning.active[disabled], .btn-warning.disabled, .btn-warning.disabled.active, .btn-warning.disabled:active, .btn-warning.disabled:focus, .btn-warning.disabled:hover, .btn-warning[disabled], .btn-warning[disabled]:active, .btn-warning[disabled]:focus, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning, fieldset[disabled] .btn-warning.active, fieldset[disabled] .btn-warning:active, fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning:hover {
            background-color: #f9b66d;
            border-color: #f9b66d
        }

        .btn-danger {
            background-color: #ed5565;
            border-color: #ed5565;
            color: #FFF
        }

        .btn-danger.active, .btn-danger:active, .btn-danger:focus, .btn-danger:hover, .open .dropdown-toggle.btn-danger {
            background-color: #ec4758;
            border-color: #ec4758;
            color: #FFF
        }

        .btn-danger.active, .btn-danger:active, .open .dropdown-toggle.btn-danger {
            background-image: none
        }

        .btn-danger.active[disabled], .btn-danger.disabled, .btn-danger.disabled.active, .btn-danger.disabled:active, .btn-danger.disabled:focus, .btn-danger.disabled:hover, .btn-danger[disabled], .btn-danger[disabled]:active, .btn-danger[disabled]:focus, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger, fieldset[disabled] .btn-danger.active, fieldset[disabled] .btn-danger:active, fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger:hover {
            background-color: #ef6776;
            border-color: #ef6776
        }

        .btn-link {
            color: inherit
        }

        .btn-link.active, .btn-link:active, .btn-link:focus, .btn-link:hover, .open .dropdown-toggle.btn-link {
            color: #1ab394;
            text-decoration: none
        }

        .btn-link.active, .btn-link:active, .open .dropdown-toggle.btn-link {
            background-image: none
        }

        .btn-link.active[disabled], .btn-link.disabled, .btn-link.disabled.active, .btn-link.disabled:active, .btn-link.disabled:focus, .btn-link.disabled:hover, .btn-link[disabled], .btn-link[disabled]:active, .btn-link[disabled]:focus, .btn-link[disabled]:hover, fieldset[disabled] .btn-link, fieldset[disabled] .btn-link.active, fieldset[disabled] .btn-link:active, fieldset[disabled] .btn-link:focus, fieldset[disabled] .btn-link:hover {
            color: #cacaca
        }

        .btn-white {
            color: inherit;
            background: #fff;
            border: 1px solid #e7eaec
        }

        .btn-white.active, .btn-white:active, .btn-white:focus, .btn-white:hover, .open .dropdown-toggle.btn-white {
            color: inherit;
            border: 1px solid #d2d2d2
        }

        .btn-white.active, .btn-white:active {
            box-shadow: 0 2px 5px rgba(0, 0, 0, .15) inset
        }

        .btn-white.active, .btn-white:active, .open .dropdown-toggle.btn-white {
            background-image: none
        }

        .btn-white.active[disabled], .btn-white.disabled, .btn-white.disabled.active, .btn-white.disabled:active, .btn-white.disabled:focus, .btn-white.disabled:hover, .btn-white[disabled], .btn-white[disabled]:active, .btn-white[disabled]:focus, .btn-white[disabled]:hover, fieldset[disabled] .btn-white, fieldset[disabled] .btn-white.active, fieldset[disabled] .btn-white:active, fieldset[disabled] .btn-white:focus, fieldset[disabled] .btn-white:hover {
            color: #cacaca
        }

        .form-control, .form-control:focus, .has-error .form-control:focus, .has-success .form-control:focus, .has-warning .form-control:focus, .navbar-collapse, .navbar-form, .navbar-form-custom .form-control:focus, .navbar-form-custom .form-control:hover, .open .btn.dropdown-toggle, .panel, .popover, .progress, .progress-bar {
            box-shadow: none
        }

        .btn-outline {
            color: inherit;
            background-color: transparent;
            -webkit-transition: all .5s;
            transition: all .5s
        }

        .btn-rounded {
            border-radius: 50px
        }

        .btn-large-dim {
            width: 90px;
            height: 90px;
            font-size: 42px
        }

        button.dim {
            display: inline-block;
            color: #fff;
            text-decoration: none;
            text-transform: uppercase;
            text-align: center;
            padding-top: 6px;
            margin-right: 10px;
            position: relative;
            cursor: pointer;
            border-radius: 5px;
            font-weight: 600;
            margin-bottom: 20px !important
        }

        button.dim:active {
            top: 3px
        }

        button.btn-primary.dim {
            box-shadow: inset 0 0 0 #16987e, 0 5px 0 0 #16987e, 0 10px 5px #999
        }

        button.btn-primary.dim:active {
            box-shadow: inset 0 0 0 #16987e, 0 2px 0 0 #16987e, 0 5px 3px #999
        }

        button.btn-default.dim {
            box-shadow: inset 0 0 0 #b3b3b3, 0 5px 0 0 #b3b3b3, 0 10px 5px #999
        }

        button.btn-default.dim:active {
            box-shadow: inset 0 0 0 #b3b3b3, 0 2px 0 0 #b3b3b3, 0 5px 3px #999
        }

        button.btn-warning.dim {
            box-shadow: inset 0 0 0 #f79d3c, 0 5px 0 0 #f79d3c, 0 10px 5px #999
        }

        button.btn-warning.dim:active {
            box-shadow: inset 0 0 0 #f79d3c, 0 2px 0 0 #f79d3c, 0 5px 3px #999
        }

        button.btn-info.dim {
            box-shadow: inset 0 0 0 #1eacae, 0 5px 0 0 #1eacae, 0 10px 5px #999
        }

        button.btn-info.dim:active {
            box-shadow: inset 0 0 0 #1eacae, 0 2px 0 0 #1eacae, 0 5px 3px #999
        }

        button.btn-success.dim {
            box-shadow: inset 0 0 0 #1872ab, 0 5px 0 0 #1872ab, 0 10px 5px #999
        }

        button.btn-success.dim:active {
            box-shadow: inset 0 0 0 #1872ab, 0 2px 0 0 #1872ab, 0 5px 3px #999
        }

        button.btn-danger.dim {
            box-shadow: inset 0 0 0 #ea394c, 0 5px 0 0 #ea394c, 0 10px 5px #999
        }

        button.btn-danger.dim:active {
            box-shadow: inset 0 0 0 #ea394c, 0 2px 0 0 #ea394c, 0 5px 3px #999
        }

        button.dim:before {
            font-size: 50px;
            line-height: 1em;
            font-weight: 400;
            color: #fff;
            display: block;
            padding-top: 10px
        }

        button.dim:active:before {
            top: 7px;
            font-size: 50px
        }

        .label {
            background-color: #d1dade;
            color: #5e5e5e;
            font-size: 10px;
            font-weight: 600;
            padding: 3px 8px;
            text-shadow: none
        }

        .badge {
            background-color: #d1dade;
            color: #5e5e5e;
            font-size: 11px;
            font-weight: 600;
            padding-bottom: 4px;
            padding-left: 6px;
            padding-right: 6px;
            text-shadow: none
        }

        .badge-primary, .label-primary {
            background-color: #1ab394;
            color: #FFF
        }

        .badge-success, .label-success {
            background-color: #1c84c6;
            color: #FFF
        }

        .badge-warning, .label-warning {
            background-color: #f8ac59;
            color: #FFF
        }

        .badge-warning-light, .label-warning-light {
            background-color: #f8ac59;
            color: #fff
        }

        .badge-danger, .label-danger {
            background-color: #ed5565;
            color: #FFF
        }

        .badge-info, .label-info {
            background-color: #23c6c8;
            color: #FFF
        }

        .badge-inverse, .label-inverse {
            background-color: #262626;
            color: #FFF
        }

        .badge-white, .label-white {
            background-color: #FFF;
            color: #5E5E5E
        }

        .badge-disable, .label-white {
            background-color: #2A2E36;
            color: #8B91A0
        }

        .chosen-container-single .chosen-single {
            background: #fff;
            box-shadow: none;
            -moz-box-sizing: border-box;
            background-color: #FFF;
            border: 1px solid #CBD5DD;
            border-radius: 2px;
            cursor: text;
            height: auto !important;
            margin: 0;
            min-height: 30px;
            overflow: hidden;
            padding: 4px 12px;
            position: relative;
            width: 100%
        }

        .chosen-container-multi .chosen-choices li.search-choice {
            background: #f1f1f1;
            border: 1px solid #ededed;
            border-radius: 2px;
            box-shadow: none;
            color: #333;
            cursor: default;
            line-height: 13px;
            margin: 3px 0 3px 5px;
            padding: 3px 20px 3px 5px;
            position: relative
        }

        .pagination > .active > a, .pagination > .active > a:focus, .pagination > .active > a:hover, .pagination > .active > span, .pagination > .active > span:focus, .pagination > .active > span:hover {
            background-color: #f4f4f4;
            border-color: #DDD;
            color: inherit;
            cursor: default;
            z-index: 2
        }

        .pagination > li > a, .pagination > li > span {
            background-color: #FFF;
            border: 1px solid #DDD;
            color: inherit;
            float: left;
            line-height: 1.42857;
            margin-left: -1px;
            padding: 4px 10px;
            position: relative;
            text-decoration: none
        }

        .tooltip-inner {
            background-color: #2F4050
        }

        .tooltip.top .tooltip-arrow {
            border-top-color: #2F4050
        }

        .tooltip.right .tooltip-arrow {
            border-right-color: #2F4050
        }

        .tooltip.bottom .tooltip-arrow {
            border-bottom-color: #2F4050
        }

        .tooltip.left .tooltip-arrow {
            border-left-color: #2F4050
        }

        .easypiechart {
            position: relative;
            text-align: center
        }

        .easypiechart .h2 {
            margin-left: 10px;
            margin-top: 10px;
            display: inline-block
        }

        .easypiechart canvas {
            top: 0;
            left: 0
        }

        .easypiechart .easypie-text {
            line-height: 1;
            position: absolute;
            top: 33px;
            width: 100%;
            z-index: 1
        }

        .easypiechart img {
            margin-top: -4px
        }

        .jqstooltip {
            box-sizing: content-box
        }

        .fc-state-default {
            background-color: #fff;
            background-image: none;
            background-repeat: repeat-x;
            box-shadow: none;
            color: #333;
            text-shadow: none;
            border: 1px solid
        }

        .fc-button {
            color: inherit;
            border: 1px solid #e7eaec;
            cursor: pointer;
            display: inline-block;
            height: 1.9em;
            line-height: 1.9em;
            overflow: hidden;
            padding: 0 .6em;
            position: relative;
            white-space: nowrap
        }

        .fc-state-active {
            background-color: #1ab394;
            border-color: #1ab394;
            color: #fff
        }

        .fc-header-title h2 {
            font-size: 16px;
            font-weight: 600;
            color: inherit
        }

        .fc-content .fc-widget-content, .fc-content .fc-widget-header {
            border-color: #e7eaec;
            font-weight: 400
        }

        .fc-border-separate tbody {
            background-color: #F8F8F8
        }

        .fc-state-highlight {
            background: none repeat scroll 0 0 #FCF8E3
        }

        .external-event {
            padding: 5px 10px;
            border-radius: 2px;
            cursor: pointer;
            margin-bottom: 5px
        }

        .fc-ltr .fc-event-hori.fc-event-end, .fc-rtl .fc-event-hori.fc-event-start {
            border-radius: 2px
        }

        .fc-agenda .fc-event-time, .fc-event, .fc-event a {
            padding: 4px 6px;
            background-color: #1ab394;
            border-color: #1ab394
        }

        .fc-event-time, .fc-event-title {
            color: #717171;
            padding: 0 1px
        }

        .ui-calendar .fc-event-time, .ui-calendar .fc-event-title {
            color: #fff
        }

        .chat-activity-list .chat-element {
            border-bottom: 1px solid #e7eaec
        }

        .chat-element:first-child {
            margin-top: 0
        }

        .chat-element {
            padding-bottom: 15px
        }

        .chat-element, .chat-element .media {
            margin-top: 15px
        }

        .chat-element, .media-body {
            overflow: hidden
        }

        .media-body {
            display: block;
            width: auto
        }

        .chat-element > .pull-left {
            margin-right: 10px
        }

        .chat-element img.img-circle, .dropdown-messages-box img.img-circle {
            width: 38px;
            height: 38px
        }

        .chat-element .well {
            border: 1px solid #e7eaec;
            box-shadow: none;
            margin-top: 10px;
            margin-bottom: 5px;
            padding: 10px 20px;
            font-size: 11px;
            line-height: 16px
        }

        .chat-element .actions {
            margin-top: 10px
        }

        .chat-element .photos {
            margin: 10px 0
        }

        .right.chat-element > .pull-right {
            margin-left: 10px
        }

        .chat-photo {
            max-height: 180px;
            border-radius: 4px;
            overflow: hidden;
            margin-right: 10px;
            margin-bottom: 10px
        }

        .chat {
            margin: 0;
            padding: 0;
            list-style: none
        }

        .chat li {
            margin-bottom: 10px;
            padding-bottom: 5px;
            border-bottom: 1px dotted #B3A9A9
        }

        .chat li.left .chat-body {
            margin-left: 60px
        }

        .chat li.right .chat-body {
            margin-right: 60px
        }

        .chat li .chat-body p {
            margin: 0;
            color: #777
        }

        .chat .glyphicon, .panel .slidedown .glyphicon {
            margin-right: 5px
        }

        .chat-panel .panel-body {
            height: 350px;
            overflow-y: scroll
        }

        a.list-group-item.active, a.list-group-item.active:focus, a.list-group-item.active:hover {
            background-color: #1ab394;
            border-color: #1ab394;
            color: #FFF;
            z-index: 2
        }

        .list-group-item-heading {
            margin-top: 10px
        }

        .list-group-item-text {
            margin: 0 0 10px;
            color: inherit;
            font-size: 12px;
            line-height: inherit
        }

        .no-padding .list-group-item {
            border-left: none;
            border-right: none;
            border-bottom: none
        }

        .no-padding .list-group-item:first-child {
            border-left: none;
            border-right: none;
            border-bottom: none;
            border-top: none
        }

        .no-padding .list-group {
            margin-bottom: 0
        }

        .list-group-item {
            background-color: inherit;
            border: 1px solid #e7eaec;
            display: block;
            margin-bottom: -1px;
            padding: 10px 15px;
            position: relative
        }

        .elements-list .list-group-item {
            border-left: none;
            border-right: none;
            padding: 15px 25px
        }

        .elements-list .list-group-item:first-child {
            border-left: none;
            border-right: none;
            border-top: none !important
        }

        .elements-list .list-group {
            margin-bottom: 0
        }

        .elements-list a {
            color: inherit
        }

        .elements-list .list-group-item.active, .elements-list .list-group-item:hover {
            background: #f3f3f4;
            color: inherit;
            border-color: #e7eaec;
            border-radius: 0
        }

        .elements-list li.active {
            -webkit-transition: none;
            transition: none
        }

        .element-detail-box {
            padding: 25px
        }

        .flot-chart {
            display: block;
            height: 200px
        }

        .widget .flot-chart.dashboard-chart {
            display: block;
            height: 120px;
            margin-top: 40px
        }

        .flot-chart.dashboard-chart {
            display: block;
            height: 180px;
            margin-top: 40px
        }

        .flot-chart-content {
            width: 100%;
            height: 100%
        }

        .flot-chart-pie-content {
            width: 200px;
            height: 200px;
            margin: auto
        }

        .jqstooltip {
            position: absolute;
            display: block;
            left: 0;
            top: 0;
            visibility: hidden;
            background: #2b303a;
            background-color: rgba(43, 48, 58, .8);
            color: #fff;
            text-align: left;
            white-space: nowrap;
            z-index: 10000;
            padding: 5px;
            min-height: 22px;
            border-radius: 3px
        }

        .jqsfield {
            color: #fff;
            text-align: left
        }

        .h-200 {
            min-height: 200px
        }

        .legendLabel {
            padding-left: 5px
        }

        .stat-list li:first-child {
            margin-top: 0
        }

        .stat-list {
            list-style: none;
            padding: 0;
            margin: 0
        }

        .stat-percent {
            float: right
        }

        .stat-list li {
            margin-top: 15px;
            position: relative
        }

        table.dataTable thead .sorting, table.dataTable thead .sorting_asc:after, table.dataTable thead .sorting_asc_disabled, table.dataTable thead .sorting_desc, table.dataTable thead .sorting_desc_disabled {
            background: 0 0
        }

        table.dataTable thead .sorting_asc:after {
            float: right;
            font-family: fontawesome
        }

        table.dataTable thead .sorting_desc:after {
            content: "\f0dd";
            float: right;
            font-family: fontawesome
        }

        table.dataTable thead .sorting:after {
            content: "\f0dc";
            float: right;
            font-family: fontawesome;
            color: rgba(50, 50, 50, .5)
        }

        .dataTables_wrapper {
            padding-bottom: 30px
        }

        .img-circle {
            border-radius: 50%
        }

        .btn-circle {
            width: 30px;
            height: 30px;
            padding: 6px 0;
            border-radius: 15px;
            text-align: center;
            font-size: 12px;
            line-height: 1.428571429
        }

        .btn-circle.btn-lg {
            width: 50px;
            height: 50px;
            padding: 10px 16px;
            border-radius: 25px;
            font-size: 18px;
            line-height: 1.33
        }

        .btn-circle.btn-xl {
            width: 70px;
            height: 70px;
            padding: 10px 16px;
            border-radius: 35px;
            font-size: 24px;
            line-height: 1.33
        }

        .show-grid [class^=col-] {
            padding-top: 10px;
            padding-bottom: 10px;
            border: 1px solid #ddd;
            background-color: #eee !important
        }

        .show-grid {
            margin: 15px 0
        }

        .css-animation-box h1 {
            font-size: 44px
        }

        .animation-efect-links a {
            padding: 4px 6px;
            font-size: 12px
        }

        #animation_box {
            background-color: #f9f8f8;
            border-radius: 16px;
            width: 80%;
            margin: 0 auto;
            padding-top: 80px
        }

        .animation-text-box {
            position: absolute;
            margin-top: 40px;
            left: 50%;
            margin-left: -100px;
            width: 200px
        }

        .animation-text-info {
            position: absolute;
            margin-top: -60px;
            left: 50%;
            margin-left: -100px;
            width: 200px;
            font-size: 10px
        }

        .animation-text-box h2 {
            font-size: 54px;
            font-weight: 600;
            margin-bottom: 5px
        }

        .animation-text-box p {
            font-size: 12px;
            text-transform: uppercase
        }

        .pace {
            -webkit-pointer-events: none;
            pointer-events: none;
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none
        }

        .pace .pace-progress {
            background: #1ab394;
            position: fixed;
            z-index: 2000;
            top: 0;
            width: 100%;
            height: 2px
        }

        .pace-inactive {
            display: none
        }

        .widget {
            border-radius: 5px;
            padding: 15px 20px;
            margin-bottom: 10px;
            margin-top: 10px
        }

        .widget.style1 h2 {
            font-size: 30px
        }

        .widget h2, .widget h3 {
            margin-top: 5px;
            margin-bottom: 0
        }

        .widget-text-box {
            padding: 20px;
            border: 1px solid #e7eaec;
            background: #fff
        }

        .widget-head-color-box {
            border-radius: 5px 5px 0 0;
            margin-top: 10px
        }

        .widget .flot-chart {
            height: 100px
        }

        .vertical-align div {
            display: inline-block;
            vertical-align: middle
        }

        .vertical-align h2, .vertical-align h3 {
            margin: 0
        }

        .todo-list {
            list-style: none outside none;
            margin: 0;
            padding: 0;
            font-size: 14px
        }

        .todo-list.small-list {
            font-size: 12px
        }

        .todo-list.small-list > li {
            background: #f3f3f4;
            border-left: none;
            border-right: none;
            border-radius: 4px;
            color: inherit;
            margin-bottom: 2px;
            padding: 6px 6px 6px 12px
        }

        .todo-list.small-list .btn-group-xs > .btn, .todo-list.small-list .btn-xs {
            border-radius: 5px;
            font-size: 10px;
            line-height: 1.5;
            padding: 1px 2px 1px 5px
        }

        .todo-list > li {
            background: #f3f3f4;
            border-left: 6px solid #e7eaec;
            border-right: 6px solid #e7eaec;
            border-radius: 4px;
            color: inherit;
            margin-bottom: 2px;
            padding: 10px
        }

        .todo-list .handle {
            cursor: move;
            display: inline-block;
            font-size: 16px;
            margin: 0 5px
        }

        .todo-list > li .label {
            font-size: 9px;
            margin-left: 10px
        }

        .check-link {
            font-size: 16px
        }

        .todo-completed {
            text-decoration: line-through
        }

        .geo-statistic h1 {
            font-size: 36px;
            margin-bottom: 0
        }

        .glyphicon.fa {
            font-family: FontAwesome
        }

        .inline {
            display: inline-block !important
        }

        .input-s-sm {
            width: 120px
        }

        .input-s {
            width: 200px
        }

        .input-s-lg {
            width: 250px
        }

        .i-checks {
            padding-left: 0
        }

        .form-control, .single-line {
            background-color: #FFF;
            background-image: none;
            border: 1px solid #e5e6e7;
            border-radius: 1px;
            color: inherit;
            display: block;
            padding: 6px 12px;
            -webkit-transition: border-color .15s ease-in-out 0s, box-shadow .15s ease-in-out 0s;
            transition: border-color .15s ease-in-out 0s, box-shadow .15s ease-in-out 0s;
            width: 100%;
            font-size: 14px
        }

        .form-control:focus, .single-line:focus {
            border-color: #1ab394 !important
        }

        .has-success .form-control {
            border-color: #1ab394
        }

        .has-warning .form-control {
            border-color: #f8ac59
        }

        .has-error .form-control {
            border-color: #ed5565
        }

        .has-success .control-label {
            color: #1ab394
        }

        .has-warning .control-label {
            color: #f8ac59
        }

        .has-error .control-label {
            color: #ed5565
        }

        .input-group-addon {
            background-color: #fff;
            border: 1px solid #E5E6E7;
            border-radius: 1px;
            color: inherit;
            font-size: 14px;
            font-weight: 400;
            line-height: 1;
            padding: 6px 12px;
            text-align: center
        }

        .spinner-buttons.input-group-btn .btn-xs {
            line-height: 1.13
        }

        .spinner-buttons.input-group-btn {
            width: 20%
        }

        .noUi-connect {
            background: none repeat scroll 0 0 #1ab394;
            box-shadow: none
        }

        .slider_red .noUi-connect {
            background: none repeat scroll 0 0 #ed5565;
            box-shadow: none
        }

        .ui-sortable .ibox-title {
            cursor: move
        }

        .ui-sortable-placeholder {
            border: 1px dashed #cecece !important;
            visibility: visible !important;
            background: #e7eaec
        }

        .ibox.ui-sortable-placeholder {
            margin: 0 0 23px !important
        }

        .tabs-container .panel-body {
            background: #fff;
            border: 1px solid #e7eaec;
            border-radius: 2px;
            padding: 20px;
            position: relative
        }

        .tabs-container .nav-tabs > li.active > a, .tabs-container .nav-tabs > li.active > a:focus, .tabs-container .nav-tabs > li.active > a:hover {
            background-color: #fff
        }

        .tabs-container .nav-tabs > li {
            float: left;
            margin-bottom: -1px
        }

        .tabs-container .nav-tabs > li.active > a, .tabs-container .nav-tabs > li.active > a:focus, .tabs-container .nav-tabs > li.active > a:hover {
            border: 1px solid #e7eaec;
            border-bottom-color: transparent
        }

        .tabs-container .nav-tabs {
            border-bottom: 1px solid #e7eaec
        }

        .tabs-container .tab-pane .panel-body {
            border-top: none
        }

        .tabs-container .tabs-left .tab-pane .panel-body, .tabs-container .tabs-right .tab-pane .panel-body {
            border-top: 1px solid #e7eaec
        }

        .tabs-container .nav-tabs > li a:hover {
            background: 0 0;
            border-color: transparent
        }

        .tabs-container .tabs-below > .nav-tabs, .tabs-container .tabs-left > .nav-tabs, .tabs-container .tabs-right > .nav-tabs {
            border-bottom: 0
        }

        .tabs-container .tabs-left .panel-body {
            position: static
        }

        .tabs-container .tabs-left > .nav-tabs, .tabs-container .tabs-right > .nav-tabs {
            width: 20%
        }

        .tabs-container .tabs-left .panel-body {
            width: 80%;
            margin-left: 20%
        }

        .tabs-container .tabs-right .panel-body {
            width: 80%;
            margin-right: 20%
        }

        .tabs-container .pill-content > .pill-pane, .tabs-container .tab-content > .tab-pane {
            display: none
        }

        .tabs-container .pill-content > .active, .tabs-container .tab-content > .active {
            display: block
        }

        .tabs-container .tabs-below > .nav-tabs {
            border-top: 1px solid #e7eaec
        }

        .tabs-container .tabs-below > .nav-tabs > li {
            margin-top: -1px;
            margin-bottom: 0
        }

        .tabs-container .tabs-below > .nav-tabs > li > a {
            border-radius: 0 0 4px 4px
        }

        .tabs-container .tabs-below > .nav-tabs > li > a:focus, .tabs-container .tabs-below > .nav-tabs > li > a:hover {
            border-top-color: #e7eaec;
            border-bottom-color: transparent
        }

        .tabs-container .tabs-left > .nav-tabs > li, .tabs-container .tabs-right > .nav-tabs > li {
            float: none
        }

        .tabs-container .tabs-left > .nav-tabs > li > a, .tabs-container .tabs-right > .nav-tabs > li > a {
            min-width: 74px;
            margin-right: 0;
            margin-bottom: 3px
        }

        .tabs-container .tabs-left > .nav-tabs {
            float: left;
            margin-right: 19px
        }

        .tabs-container .tabs-left > .nav-tabs > li > a {
            margin-right: -1px;
            border-radius: 4px 0 0 4px
        }

        .tabs-container .tabs-left > .nav-tabs .active > a, .tabs-container .tabs-left > .nav-tabs .active > a:focus, .tabs-container .tabs-left > .nav-tabs .active > a:hover {
            border-color: #e7eaec transparent #e7eaec #e7eaec;
            *border-right-color: #fff
        }

        .tabs-container .tabs-right > .nav-tabs {
            float: right;
            margin-left: 19px
        }

        .tabs-container .tabs-right > .nav-tabs > li > a {
            margin-left: -1px;
            border-radius: 0 4px 4px 0
        }

        .tabs-container .tabs-right > .nav-tabs .active > a, .tabs-container .tabs-right > .nav-tabs .active > a:focus, .tabs-container .tabs-right > .nav-tabs .active > a:hover {
            border-color: #e7eaec #e7eaec #e7eaec transparent;
            *border-left-color: #fff;
            z-index: 1
        }

        .onoffswitch {
            position: relative;
            width: 54px;
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none
        }

        .onoffswitch-checkbox {
            display: none
        }

        .onoffswitch-label {
            display: block;
            overflow: hidden;
            cursor: pointer;
            border: 2px solid #1AB394;
            border-radius: 3px
        }

        .onoffswitch-inner {
            display: block;
            width: 200%;
            margin-left: -100%;
            -webkit-transition: margin .3s ease-in 0s;
            transition: margin .3s ease-in 0s
        }

        .onoffswitch-inner:after, .onoffswitch-inner:before {
            display: block;
            float: left;
            width: 50%;
            height: 16px;
            padding: 0;
            line-height: 16px;
            font-size: 10px;
            font-family: Trebuchet, Arial, sans-serif;
            font-weight: 700;
            box-sizing: border-box
        }

        .onoffswitch-inner:before {
            content: "ON";
            padding-left: 7px;
            background-color: #1AB394;
            color: #FFF
        }

        .onoffswitch-inner:after {
            content: "OFF";
            padding-right: 7px;
            background-color: #FFF;
            color: #919191;
            text-align: right
        }

        .onoffswitch-switch {
            display: block;
            width: 18px;
            margin: 0;
            background: #FFF;
            border: 2px solid #1AB394;
            border-radius: 3px;
            position: absolute;
            top: 0;
            bottom: 0;
            right: 36px;
            -webkit-transition: all .3s ease-in 0s;
            transition: all .3s ease-in 0s
        }

        .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
            margin-left: 0
        }

        .onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
            right: 0
        }

        .dd {
            position: relative;
            display: block;
            margin: 0;
            padding: 0;
            list-style: none;
            font-size: 13px;
            line-height: 20px
        }

        .dd-list {
            display: block;
            position: relative;
            margin: 0;
            padding: 0;
            list-style: none
        }

        .dd-list .dd-list {
            padding-left: 30px
        }

        .dd-collapsed .dd-list {
            display: none
        }

        .dd-empty, .dd-item, .dd-placeholder {
            display: block;
            position: relative;
            margin: 0;
            padding: 0;
            min-height: 20px;
            font-size: 13px;
            line-height: 20px
        }

        .dd-handle {
            display: block;
            margin: 5px 0;
            padding: 5px 10px;
            color: #333;
            text-decoration: none;
            border: 1px solid #e7eaec;
            background: #f5f5f5;
            border-radius: 3px;
            box-sizing: border-box;
            -moz-box-sizing: border-box
        }

        .dd-handle span {
            font-weight: 700
        }

        .dd-handle:hover {
            background: #f0f0f0;
            cursor: pointer;
            font-weight: 700
        }

        .dd-item > button {
            display: block;
            position: relative;
            cursor: pointer;
            float: left;
            width: 25px;
            height: 20px;
            margin: 5px 0;
            padding: 0;
            text-indent: 100%;
            white-space: nowrap;
            overflow: hidden;
            border: 0;
            background: 0 0;
            font-size: 12px;
            line-height: 1;
            text-align: center;
            font-weight: 700
        }

        .dd-item > button:before {
            content: '+';
            display: block;
            position: absolute;
            width: 100%;
            text-align: center;
            text-indent: 0
        }

        .dd-item > button[data-action=collapse]:before {
            content: '-'
        }

        #nestable2 .dd-item > button {
            font-family: FontAwesome;
            height: 34px;
            width: 33px;
            color: #c1c1c1
        }

        #nestable2 .dd-item > button:before {
            content: "\f067"
        }

        #nestable2 .dd-item > button[data-action=collapse]:before {
            content: "\f068"
        }

        .dd-empty, .dd-placeholder {
            margin: 5px 0;
            padding: 0;
            min-height: 30px;
            background: #f2fbff;
            border: 1px dashed #b6bcbf;
            box-sizing: border-box;
            -moz-box-sizing: border-box
        }

        .dd-empty {
            border: 1px dashed #bbb;
            min-height: 100px;
            background-color: #e5e5e5;
            background-image: -webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff), -webkit-linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff);
            background-image: linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff), linear-gradient(45deg, #fff 25%, transparent 25%, transparent 75%, #fff 75%, #fff);
            background-size: 60px 60px;
            background-position: 0 0, 30px 30px
        }

        .dd-dragel {
            position: absolute;
            z-index: 9999;
            pointer-events: none
        }

        .dd-dragel > .dd-item .dd-handle {
            margin-top: 0
        }

        .dd-dragel .dd-handle {
            box-shadow: 2px 4px 6px 0 rgba(0, 0, 0, .1)
        }

        .nestable-lists {
            display: block;
            clear: both;
            padding: 30px 0;
            width: 100%;
            border: 0;
            border-top: 2px solid #ddd;
            border-bottom: 2px solid #ddd
        }

        #nestable-menu {
            padding: 0;
            margin: 10px 0 20px
        }

        #nestable-output, #nestable2-output {
            width: 100%;
            line-height: 1.333333em;
            font-family: lucida grande, lucida sans unicode, helvetica, arial, sans-serif
        }

        #nestable2 .dd-handle {
            color: inherit;
            border: 1px dashed #e7eaec;
            background: #f3f3f4;
            padding: 10px
        }

        #nestable2 span.label {
            margin-right: 10px
        }

        #nestable-output, #nestable2-output {
            font-size: 12px;
            padding: 25px;
            box-sizing: border-box;
            -moz-box-sizing: border-box
        }

        .CodeMirror {
            border: 1px solid #eee;
            height: auto
        }

        .CodeMirror-scroll {
            overflow-y: hidden;
            overflow-x: auto
        }

        .google-map {
            height: 300px
        }

        label.error {
            color: #cc5965;
            display: inline-block;
            margin-left: 5px
        }

        .form-control.error {
            border: 1px dotted #cc5965
        }

        .gridStyle {
            border: 1px solid #d4d4d4;
            width: 100%;
            height: 400px
        }

        .gridStyle2 {
            border: 1px solid #d4d4d4;
            width: 500px;
            height: 300px
        }

        .ngH eaderCell {
            border-right: none;
            border-bottom: 1px solid #e7eaec
        }

        .ngCell {
            border-right: none
        }

        .ngTopPanel {
            background: #F5F5F6
        }

        .ngRow.even {
            background: #f9f9f9
        }

        .ngRow.selected {
            background: #EBF2F1
        }

        .ngRow {
            border-bottom: 1px solid #e7eaec
        }

        .ngCell {
            background-color: transparent
        }

        .ngHeaderCell {
            border-right: none
        }

        #toast-container > .toast {
            background-image: none !important
        }

        #toast-container > .toast:before {
            position: fixed;
            font-family: FontAwesome;
            font-size: 24px;
            line-height: 24px;
            float: left;
            color: #FFF;
            padding-right: .5em;
            margin: auto .5em auto -1.5em
        }

        #toast-container > div {
            box-shadow: 0 0 3px #999;
            opacity: .9;
            -ms-filter: alpha(opacity=90);
            filter: alpha(opacity=90)
        }

        #toast-container > :hover {
            box-shadow: 0 0 4px #999;
            opacity: 1;
            -ms-filter: alpha(opacity=100);
            filter: alpha(opacity=100);
            cursor: pointer
        }

        .toast, .toast-success {
            background-color: #1ab394
        }

        .toast-error {
            background-color: #ed5565
        }

        .toast-info {
            background-color: #23c6c8
        }

        .toast-warning {
            background-color: #f8ac59
        }

        .toast-top-full-width {
            margin-top: 20px
        }

        .toast-bottom-full-width {
            margin-bottom: 20px
        }

        .img-container, .img-preview {
            overflow: hidden;
            text-align: center;
            width: 100%
        }

        .img-preview-sm {
            height: 130px;
            width: 200px
        }

        .forum-post-container .media {
            margin: 10px;
            padding: 20px 10px;
            border-bottom: 1px solid #f1f1f1
        }

        .forum-avatar {
            float: left;
            margin-right: 20px;
            text-align: center;
            width: 110px
        }

        .forum-avatar .img-circle {
            height: 48px;
            width: 48px
        }

        .author-info {
            color: #676a6c;
            font-size: 11px;
            margin-top: 5px;
            text-align: center
        }

        .forum-post-info {
            padding: 9px 12px 6px;
            background: #f9f9f9;
            border: 1px solid #f1f1f1
        }

        .media-body > .media {
            background: #f9f9f9;
            border-radius: 3px;
            border: 1px solid #f1f1f1
        }

        .forum-post-container .media-body .photos {
            margin: 10px 0
        }

        .forum-photo {
            max-width: 140px;
            border-radius: 3px
        }

        .media-body > .media .forum-avatar {
            width: 70px;
            margin-right: 10px
        }

        .media-body > .media .forum-avatar .img-circle {
            height: 38px;
            width: 38px
        }

        .mid-icon {
            font-size: 66px
        }

        .forum-item {
            margin: 10px 0;
            padding: 10px 0 20px;
            border-bottom: 1px solid #f1f1f1
        }

        .views-number {
            font-size: 24px;
            line-height: 18px;
            font-weight: 400
        }

        .forum-container, .forum-post-container {
            padding: 30px !important
        }

        .forum-item small {
            color: #999
        }

        .forum-item .forum-sub-title {
            color: #999;
            margin-left: 50px
        }

        .forum-title {
            margin: 15px 0
        }

        .forum-info {
            text-align: center
        }

        .forum-desc {
            color: #999
        }

        .forum-icon {
            float: left;
            width: 30px;
            margin-right: 20px;
            text-align: center
        }

        a.forum-item-title {
            color: inherit;
            display: block;
            font-size: 18px;
            font-weight: 600
        }

        a.forum-item-title:hover {
            color: inherit
        }

        .forum-icon .fa {
            font-size: 30px;
            margin-top: 8px;
            color: #9b9b9b
        }

        .forum-item.active .fa, .forum-item.active a.forum-item-title {
            color: #1ab394
        }

        @media (max-width: 992px) {
            .forum-info {
                margin: 15px 0 10px;
                display: none
            }

            .forum-desc {
                float: none !important
            }
        }

        .vertical-container {
            width: 90%;
            max-width: 1170px;
            margin: 0 auto
        }

        .vertical-container::after {
            content: '';
            display: table;
            clear: both
        }

        #vertical-timeline {
            position: relative;
            padding: 0;
            margin-top: 2em;
            margin-bottom: 2em
        }

        #vertical-timeline::before {
            content: '';
            position: absolute;
            top: 0;
            left: 18px;
            height: 100%;
            width: 4px;
            background: #f1f1f1
        }

        .vertical-timeline-content .btn {
            float: right
        }

        #vertical-timeline.light-timeline:before {
            background: #e7eaec
        }

        .dark-timeline .vertical-timeline-content:before {
            border-color: transparent #f5f5f5 transparent transparent
        }

        .dark-timeline.center-orientation .vertical-timeline-content:before {
            border-color: transparent transparent transparent #f5f5f5
        }

        .dark-timeline .vertical-timeline-block:nth-child(2n) .vertical-timeline-content:before, .dark-timeline.center-orientation .vertical-timeline-block:nth-child(2n) .vertical-timeline-content:before {
            border-color: transparent #f5f5f5 transparent transparent
        }

        .dark-timeline .vertical-timeline-content, .dark-timeline.center-orientation .vertical-timeline-content {
            background: #f5f5f5
        }

        @media only screen and (min-width: 1170px) {
            #vertical-timeline.center-orientation {
                margin-top: 3em;
                margin-bottom: 3em
            }

            #vertical-timeline.center-orientation:before {
                left: 50%;
                margin-left: -2px
            }
        }

        @media only screen and (max-width: 1170px) {
            .center-orientation.dark-timeline .vertical-timeline-content:before {
                border-color: transparent #f5f5f5 transparent transparent
            }
        }

        .vertical-timeline-block {
            position: relative;
            margin: 2em 0
        }

        .vertical-timeline-block:after {
            content: "";
            display: table;
            clear: both
        }

        .vertical-timeline-block:first-child {
            margin-top: 0
        }

        .vertical-timeline-block:last-child {
            margin-bottom: 0
        }

        @media only screen and (min-width: 1170px) {
            .center-orientation .vertical-timeline-block {
                margin: 4em 0
            }

            .center-orientation .vertical-timeline-block:first-child {
                margin-top: 0
            }

            .center-orientation .vertical-timeline-block:last-child {
                margin-bottom: 0
            }
        }

        .vertical-timeline-icon {
            position: absolute;
            top: 0;
            left: 0;
            width: 40px;
            height: 40px;
            border-radius: 50%;
            font-size: 16px;
            border: 3px solid #f1f1f1;
            text-align: center
        }

        .vertical-timeline-icon i {
            display: block;
            width: 24px;
            height: 24px;
            position: relative;
            left: 50%;
            top: 50%;
            margin-left: -12px;
            margin-top: -9px
        }

        @media only screen and (min-width: 1170px) {
            .center-orientation .vertical-timeline-icon {
                width: 50px;
                height: 50px;
                left: 50%;
                margin-left: -25px;
                -webkit-transform: translateZ(0);
                -webkit-backface-visibility: hidden;
                font-size: 19px
            }

            .center-orientation .vertical-timeline-icon i {
                margin-left: -12px;
                margin-top: -10px
            }

            .center-orientation .cssanimations .vertical-timeline-icon.is-hidden {
                visibility: hidden
            }
        }

        .vertical-timeline-content {
            position: relative;
            margin-left: 60px;
            background: #fff;
            border-radius: .25em;
            padding: 1em
        }

        .vertical-timeline-content:after {
            content: "";
            display: table;
            clear: both
        }

        .vertical-timeline-content h2 {
            font-weight: 400;
            margin-top: 4px
        }

        .vertical-timeline-content p {
            margin: 1em 0;
            line-height: 1.6
        }

        .vertical-timeline-content .vertical-date {
            float: left;
            font-weight: 500
        }

        .vertical-date small {
            color: #1ab394;
            font-weight: 400
        }

        .vertical-timeline-content::before {
            content: '';
            position: absolute;
            top: 16px;
            right: 100%;
            height: 0;
            width: 0;
            border: 7px solid transparent;
            border-right: 7px solid #fff
        }

        @media only screen and (min-width: 768px) {
            .vertical-timeline-content h2 {
                font-size: 18px
            }

            .vertical-timeline-content p {
                font-size: 13px
            }
        }

        @media only screen and (min-width: 1170px) {
            .center-orientation .vertical-timeline-content {
                margin-left: 0;
                padding: 1.6em;
                width: 45%
            }

            .center-orientation .vertical-timeline-content::before {
                top: 24px;
                left: 100%;
                border-color: transparent;
                border-left-color: #fff
            }

            .center-orientation .vertical-timeline-content .btn {
                float: left
            }

            .center-orientation .vertical-timeline-content .vertical-date {
                position: absolute;
                width: 100%;
                left: 122%;
                top: 2px;
                font-size: 14px
            }

            .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content {
                float: right
            }

            .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content::before {
                top: 24px;
                left: auto;
                right: 100%;
                border-color: transparent;
                border-right-color: #fff
            }

            .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content .btn {
                float: right
            }

            .center-orientation .vertical-timeline-block:nth-child(even) .vertical-timeline-content .vertical-date {
                left: auto;
                right: 122%;
                text-align: right
            }

            .center-orientation .cssanimations .vertical-timeline-content.is-hidden {
                visibility: hidden
            }
        }

        .sidebard-panel {
            width: 220px;
            background: #ebebed;
            padding: 10px 20px;
            position: absolute;
            right: 0
        }

        .sidebard-panel .feed-element img.img-circle {
            width: 32px;
            height: 32px
        }

        .media-body, .sidebard-panel .feed-element, .sidebard-panel p {
            font-size: 12px
        }

        .sidebard-panel .feed-element {
            margin-top: 20px;
            padding-bottom: 0
        }

        .sidebard-panel .list-group {
            margin-bottom: 10px
        }

        .sidebard-panel .list-group .list-group-item {
            padding: 5px 0;
            font-size: 12px;
            border: 0
        }

        .sidebar-content .wrapper, .wrapper.sidebar-content {
            padding-right: 240px !important
        }

        #right-sidebar {
            background-color: #fff;
            border-left: 1px solid #e7eaec;
            border-top: 1px solid #e7eaec;
            overflow: hidden;
            position: fixed;
            top: 60px;
            width: 260px !important;
            z-index: 1009;
            bottom: 0;
            right: -260px
        }

        #right-sidebar.sidebar-open {
            right: 0
        }

        #right-sidebar.sidebar-open.sidebar-top {
            top: 0;
            border-top: none
        }

        .sidebar-container ul.nav-tabs {
            border: none
        }

        .sidebar-container ul.nav-tabs.navs-4 li {
            width: 25%
        }

        .sidebar-container ul.nav-tabs.navs-3 li {
            width: 33.3333%
        }

        .sidebar-container ul.nav-tabs.navs-2 li {
            width: 50%
        }

        .sidebar-container ul.nav-tabs li {
            border: none
        }

        .sidebar-container ul.nav-tabs li a {
            border: none;
            padding: 12px 10px;
            margin: 0;
            border-radius: 0;
            background: #2f4050;
            color: #fff;
            text-align: center;
            border-right: 1px solid #334556
        }

        .sidebar-container ul.nav-tabs li.active a {
            border: none;
            background: #f9f9f9;
            color: #676a6c;
            font-weight: 700
        }

        .sidebar-container .nav-tabs > li.active > a:focus, .sidebar-container .nav-tabs > li.active > a:hover {
            border: none
        }

        .sidebar-container ul.sidebar-list {
            margin: 0;
            padding: 0
        }

        .sidebar-container ul.sidebar-list li {
            border-bottom: 1px solid #e7eaec;
            padding: 15px 20px;
            list-style: none;
            font-size: 12px
        }

        .sidebar-container .sidebar-message:nth-child(2n+2) {
            background: #f9f9f9
        }

        .sidebar-container ul.sidebar-list li a {
            text-decoration: none;
            color: inherit
        }

        .sidebar-container .sidebar-content {
            padding: 15px 20px;
            font-size: 12px
        }

        .sidebar-container .sidebar-title {
            background: #f9f9f9;
            padding: 20px;
            border-bottom: 1px solid #e7eaec
        }

        .sidebar-container .sidebar-title h3 {
            margin-bottom: 3px;
            padding-left: 2px
        }

        .sidebar-container .tab-content h4 {
            margin-bottom: 5px
        }

        .sidebar-container .sidebar-message > a > .pull-left {
            margin-right: 10px
        }

        .sidebar-container .sidebar-message > a {
            text-decoration: none;
            color: inherit
        }

        .sidebar-container .sidebar-message {
            padding: 15px 20px
        }

        .sidebar-container .sidebar-message .message-avatar {
            height: 38px;
            width: 38px;
            border-radius: 50%
        }

        .sidebar-container .setings-item {
            padding: 15px 20px;
            border-bottom: 1px solid #e7eaec
        }

        body {
            font-family: "open sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
            font-size: 13px;
            color: #676a6c;
            overflow-x: hidden
        }

        body, body.full-height-layout #page-wrapper, body.full-height-layout #wrapper, html {
            height: 100%;
        }

        #page-wrapper {
            min-height: auto
        }

        body.boxed-layout {
            background: url(patterns/shattered.png)
        }

        body.boxed-layout #wrapper {
            background-color: #2f4050;
            max-width: 1200px;
            margin: 0 auto
        }

        .boxed-layout #wrapper.top-navigation, .top-navigation.boxed-layout #wrapper {
            max-width: 1300px !important
        }

        .block {
            display: block
        }

        .clear {
            display: block;
            overflow: hidden
        }

        a {
            cursor: pointer
        }

        a:focus, a:hover {
            text-decoration: none
        }

        .border-bottom {
            border-bottom: 1px solid #e7eaec !important
        }

        .font-bold {
            font-weight: 600
        }

        .font-noraml {
            font-weight: 400
        }

        .text-uppercase {
            text-transform: uppercase
        }

        .b-r {
            border-right: 1px solid #e7eaec
        }

        .hr-line-dashed {
            border-top: 1px dashed #e7eaec;
            color: #fff;
            background-color: #fff;
            height: 1px;
            margin: 20px 0
        }

        .hr-line-solid {
            border-bottom: 1px solid #e7eaec;
            background-color: rgba(0, 0, 0, 0);
            border-style: solid !important;
            margin-top: 15px;
            margin-bottom: 15px
        }

        video {
            width: 100% !important;
            height: auto !important
        }

        .gallery > .row > div {
            margin-bottom: 15px
        }

        .fancybox img {
            margin-bottom: 5px;
            width: 24%
        }

        .note-editor {
            height: auto !important;
            min-height: 100px;
            border: solid 1px #e5e6e7
        }

        .modal-content {
            background-clip: padding-box;
            background-color: #FFF;
            border: 1px solid rgba(0, 0, 0, 0);
            border-radius: 4px;
            box-shadow: 0 1px 3px rgba(0, 0, 0, .3);
            outline: 0 none
        }

        .modal-dialog {
            z-index: 1200
        }

        .modal-body {
            padding: 20px 30px 30px
        }

        .inmodal .modal-body {
            background: #f8fafb
        }

        .inmodal .modal-header {
            padding: 30px 15px;
            text-align: center
        }

        .animated.modal.fade .modal-dialog {
            -webkit-transform: none;
            -ms-transform: none;
            transform: none
        }

        .inmodal .modal-title {
            font-size: 26px
        }

        .inmodal .modal-icon {
            font-size: 84px;
            color: #e2e3e3
        }

        .modal-footer {
            margin-top: 0
        }

        #wrapper {
            width: 100%;
            overflow-x: hidden;
            background-color: #2f4050
        }

        .wrapper {
            padding: 0 20px
        }

        .wrapper-content {
            padding: 20px
        }

        #page-wrapper {
            padding: 0 15px;
            position: inherit;
            margin: 0 0 0 220px
        }

        .title-action {
            text-align: right;
            padding-top: 30px
        }

        .ibox-content h1, .ibox-content h2, .ibox-content h3, .ibox-content h4, .ibox-content h5, .ibox-title h1, .ibox-title h2, .ibox-title h3, .ibox-title h4, .ibox-title h5 {
            margin-top: 5px
        }

        ol.unstyled, ul.unstyled {
            list-style: none outside none;
            margin-left: 0
        }

        .big-icon {
            font-size: 160px;
            color: #e5e6e7
        }

        .footer {
            background: none repeat scroll 0 0 #fff;
            border-top: 1px solid #e7eaec;
            overflow: hidden;
            padding: 10px 20px;
            margin: 0 -15px;
            height: 36px
        }

        .footer.fixed_full {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            z-index: 1000;
            padding: 10px 20px;
            background: #fff;
            border-top: 1px solid #e7eaec
        }

        .footer.fixed {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            z-index: 1000;
            padding: 10px 20px;
            background: #fff;
            border-top: 1px solid #e7eaec;
            margin-left: 220px
        }

        body.body-small.mini-navbar .footer.fixed, body.mini-navbar .footer.fixed {
            margin: 0 0 0 70px
        }

        body.canvas-menu .footer.fixed, body.mini-navbar.canvas-menu .footer.fixed {
            margin: 0 !important
        }

        body.fixed-sidebar.body-small.mini-navbar .footer.fixed {
            margin: 0 0 0 220px
        }

        body.body-small .footer.fixed {
            margin-left: 0
        }

        .page-heading {
            border-top: 0;
            padding: 0 20px 20px
        }

        .panel-heading h1, .panel-heading h2 {
            margin-bottom: 5px
        }

        .content-tabs {
            position: relative;
            height: 42px;
            background: #fafafa;
            line-height: 40px
        }

        .content-tabs .roll-nav, .page-tabs-list {
            position: absolute;
            width: 40px;
            height: 40px;
            text-align: center;
            color: #999;
            z-index: 2;
            top: 0
        }

        .content-tabs .roll-left {
            left: 0;
            border-right: solid 1px #eee
        }

        .content-tabs .roll-right {
            right: 0;
            border-left: solid 1px #eee
        }

        .content-tabs button {
            background: #fff;
            border: 0;
            height: 40px;
            width: 40px;
            outline: 0
        }

        .content-tabs button:hover {
            background: #fafafa
        }

        nav.page-tabs {
            margin-left: 40px;
            width: 100000px;
            height: 40px;
            overflow: hidden
        }

        nav.page-tabs .page-tabs-content {
            float: left
        }

        .page-tabs a {
            display: block;
            float: left;
            border-right: solid 1px #eee;
            padding: 0 15px
        }

        .page-tabs a i:hover {
            color: #c00
        }

        .content-tabs .roll-nav:hover, .page-tabs a:hover {
            color: #777;
            background: #f2f2f2;
            cursor: pointer
        }

        .roll-right.J_tabRight {
            right: 140px
        }

        .roll-right.btn-group {
            right: 60px;
            width: 80px;
            padding: 0
        }

        .roll-right.btn-group button {
            width: 80px
        }

        .roll-right.J_tabExit {
            background: #fff;
            height: 40px;
            width: 60px;
            outline: 0
        }

        .dropdown-menu-right {
            left: auto
        }

        #content-main {
            height: calc(100% - 140px);
            overflow: hidden
        }

        .fixed-nav #content-main {
            height: calc(100% - 80px);
            overflow: hidden
        }

        .table-bordered {
            border: 1px solid #EBEBEB
        }

        .table-bordered > thead > tr > td, .table-bordered > thead > tr > th {
            background-color: #F5F5F6
        }

        .table-bordered > tbody > tr > td, .table-bordered > tbody > tr > th, .table-bordered > tfoot > tr > td, .table-bordered > tfoot > tr > th, .table-bordered > thead > tr > td, .table-bordered > thead > tr > th {
            border: 1px solid #e7e7e7
        }

        .table > thead > tr > th {
            border-bottom: 1px solid #DDD
        }

        .table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
            border-top: 1px solid #e7eaec;
            line-height: 1.42857;
            padding: 8px;
            vertical-align: middle
        }

        .panel.blank-panel {
            background: 0 0;
            margin: 0
        }

        .blank-panel .panel-heading {
            padding-bottom: 0
        }

        .nav-tabs > li.active > a, .nav-tabs > li.active > a:focus, .nav-tabs > li.active > a:hover {
            -moz-border-bottom-colors: none;
            -moz-border-left-colors: none;
            -moz-border-right-colors: none;
            -moz-border-top-colors: none;
            background: 0 0;
            border-color: #ddd #ddd rgba(0, 0, 0, 0);
            border-bottom: #f3f3f4;
            -webkit-border-image: none;
            -o-border-image: none;
            border-image: none;
            border-style: solid;
            border-width: 1px;
            color: #555;
            cursor: default
        }

        .nav.nav-tabs li {
            background: 0 0;
            border: none
        }

        .nav-tabs > li > a {
            color: #A7B1C2;
            font-weight: 600;
            padding: 10px 20px 10px 25px
        }

        .nav-tabs > li > a:focus, .nav-tabs > li > a:hover {
            background-color: #e6e6e6;
            color: #676a6c
        }

        .ui-tab .tab-content {
            padding: 20px 0
        }

        .no-padding {
            padding: 0 !important
        }

        .no-borders {
            border: none !important
        }

        .no-margins {
            margin: 0 !important
        }

        .no-top-border {
            border-top: 0 !important
        }

        .ibox-content.text-box {
            padding-bottom: 0;
            padding-top: 15px
        }

        .border-left-right {
            border-left: 1px solid #e7eaec;
            border-right: 1px solid #e7eaec;
            border-top: none;
            border-bottom: none
        }

        .border-left {
            border-left: 1px solid #e7eaec;
            border-right: none;
            border-top: none;
            border-bottom: none
        }

        .border-right {
            border-left: none;
            border-right: 1px solid #e7eaec;
            border-top: none;
            border-bottom: none
        }

        .full-width {
            width: 100% !important
        }

        .link-block {
            font-size: 12px;
            padding: 10px
        }

        .nav.navbar-top-links .link-block a {
            font-size: 12px
        }

        .link-block a {
            font-size: 10px;
            color: inherit
        }

        body.mini-navbar .branding {
            display: none
        }

        img.circle-border {
            border: 6px solid #FFF;
            border-radius: 50%
        }

        .branding {
            float: left;
            color: #FFF;
            font-size: 18px;
            font-weight: 600;
            padding: 17px 20px;
            text-align: center;
            background-color: #1ab394
        }

        .login-panel {
            margin-top: 25%
        }

        .page-header {
            padding: 20px 0 9px;
            margin: 0 0 20px;
            border-bottom: 1px solid #eee
        }

        .fontawesome-icon-list {
            margin-top: 22px
        }

        .fontawesome-icon-list .fa-hover a {
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            display: block;
            color: #222;
            line-height: 32px;
            height: 32px;
            padding-left: 10px;
            border-radius: 4px
        }

        .fontawesome-icon-list .fa-hover a .fa {
            width: 32px;
            font-size: 14px;
            display: inline-block;
            text-align: right;
            margin-right: 10px
        }

        .fontawesome-icon-list .fa-hover a:hover {
            background-color: #1d9d74;
            color: #fff;
            text-decoration: none
        }

        .fontawesome-icon-list .fa-hover a:hover .fa {
            font-size: 30px;
            vertical-align: -6px
        }

        .fontawesome-icon-list .fa-hover a:hover .text-muted {
            color: #bbe2d5
        }

        .feature-list .col-md-4 {
            margin-bottom: 22px
        }

        .feature-list h4 .fa:before {
            vertical-align: -10%;
            font-size: 28px;
            display: inline-block;
            width: 1.07142857em;
            text-align: center;
            margin-right: 5px
        }

        .ui-draggable .ibox-title {
            cursor: move
        }

        .breadcrumb {
            background-color: #fff;
            padding: 0;
            margin-bottom: 0
        }

        .breadcrumb > .active, .breadcrumb > li a {
            color: inherit
        }

        code {
            background-color: #F9F2F4;
            border-radius: 4px;
            color: #ca4440;
            font-size: 90%;
            padding: 2px 4px;
            white-space: nowrap
        }

        .ibox {
            clear: both;
            margin-bottom: 25px;
            margin-top: 0;
            padding: 0
        }

        .ibox.collapsed .ibox-content {
            display: none
        }

        .ibox.collapsed .fa.fa-chevron-up:before {
            content: "\f078"
        }

        .ibox.collapsed .fa.fa-chevron-down:before {
            content: "\f077"
        }

        .ibox:after, .ibox:before {
            display: table
        }

        .ibox-title {
            -moz-border-bottom-colors: none;
            -moz-border-left-colors: none;
            -moz-border-right-colors: none;
            -moz-border-top-colors: none;
            background-color: #fff;
            border-color: #e7eaec;
            -webkit-border-image: none;
            -o-border-image: none;
            border-image: none;
            border-style: solid solid none;
            border-width: 4px 0 0;
            color: inherit;
            margin-bottom: 0;
            padding: 14px 15px 7px;
            min-height: 48px
        }

        .ibox-content {
            background-color: #fff;
            color: inherit;
            padding: 15px 20px 20px;
            border-color: #e7eaec;
            -webkit-border-image: none;
            -o-border-image: none;
            border-image: none;
            border-style: solid solid none;
            border-width: 1px 0
        }

        table.table-mail tr td {
            padding: 12px
        }

        .table-mail .check-mail {
            padding-left: 20px
        }

        .table-mail .mail-date {
            padding-right: 20px
        }

        .check-mail, .star-mail {
            width: 40px
        }

        .unread td, .unread td a {
            font-weight: 600;
            color: inherit
        }

        .read td, .read td a {
            font-weight: 400;
            color: inherit
        }

        .unread td {
            background-color: #f9f8f8
        }

        .ibox-content {
            clear: both
        }

        .ibox-heading {
            background-color: #f3f6fb;
            border-bottom: none
        }

        .ibox-heading h3 {
            font-weight: 200;
            font-size: 24px
        }

        .ibox-title h5 {
            display: inline-block;
            font-size: 14px;
            margin: 0 0 7px;
            padding: 0;
            text-overflow: ellipsis;
            float: left
        }

        .ibox-title .label {
            float: left;
            margin-left: 4px
        }

        .ibox-tools {
            display: inline-block;
            float: right;
            margin-top: 0;
            position: relative;
            padding: 0
        }

        .ibox-tools a {
            cursor: pointer;
            margin-left: 5px;
            color: #c4c4c4
        }

        .ibox-tools a.btn-primary {
            color: #fff
        }

        .ibox-tools .dropdown-menu > li > a {
            padding: 4px 10px;
            font-size: 12px
        }

        .ibox .open > .dropdown-menu {
            left: auto;
            right: 0
        }

        .gray-bg {
            background-color: #f3f3f4
        }

        .white-bg {
            background-color: #fff
        }

        .navy-bg {
            background-color: #1ab394;
            color: #fff
        }

        .blue-bg {
            background-color: #1c84c6;
            color: #fff
        }

        .lazur-bg {
            background-color: #23c6c8;
            color: #fff
        }

        .yellow-bg {
            background-color: #f8ac59;
            color: #fff
        }

        .red-bg {
            background-color: #ed5565;
            color: #fff
        }

        .black-bg {
            background-color: #262626
        }

        .panel-primary {
            border-color: #1ab394
        }

        .panel-primary > .panel-heading {
            background-color: #1ab394;
            border-color: #1ab394
        }

        .panel-success {
            border-color: #1c84c6
        }

        .panel-success > .panel-heading {
            background-color: #1c84c6;
            border-color: #1c84c6;
            color: #fff
        }

        .panel-info {
            border-color: #23c6c8
        }

        .panel-info > .panel-heading {
            background-color: #23c6c8;
            border-color: #23c6c8;
            color: #fff
        }

        .panel-warning {
            border-color: #f8ac59
        }

        .panel-warning > .panel-heading {
            background-color: #f8ac59;
            border-color: #f8ac59;
            color: #fff
        }

        .panel-danger {
            border-color: #ed5565
        }

        .panel-danger > .panel-heading {
            background-color: #ed5565;
            border-color: #ed5565;
            color: #fff
        }

        .progress-bar {
            background-color: #1ab394
        }

        .progress-small, .progress-small .progress-bar {
            height: 10px
        }

        .progress-mini, .progress-small {
            margin-top: 5px
        }

        .progress-mini, .progress-mini .progress-bar {
            height: 5px;
            margin-bottom: 0
        }

        .progress-bar-navy-light {
            background-color: #3dc7ab
        }

        .progress-bar-success {
            background-color: #1c84c6
        }

        .progress-bar-info {
            background-color: #23c6c8
        }

        .progress-bar-warning {
            background-color: #f8ac59
        }

        .progress-bar-danger {
            background-color: #ed5565
        }

        .panel-title {
            font-size: inherit
        }

        .jumbotron {
            border-radius: 6px;
            padding: 40px
        }

        .jumbotron h1 {
            margin-top: 0
        }

        .text-navy {
            color: #1ab394
        }

        .text-primary {
            color: inherit
        }

        .text-success {
            color: #1c84c6
        }

        .text-info {
            color: #23c6c8
        }

        .text-warning {
            color: #f8ac59
        }

        .text-danger {
            color: #ed5565
        }

        .text-muted {
            color: #888
        }

        .simple_tag {
            background-color: #f3f3f4;
            border: 1px solid #e7eaec;
            border-radius: 2px;
            color: inherit;
            font-size: 10px;
            margin-right: 5px;
            margin-top: 5px;
            padding: 5px 12px;
            display: inline-block
        }

        .img-shadow {
            box-shadow: 0 0 3px 0 #919191
        }

        .ComposeEmail .navbar.navbar-static-top, .Dashboard_2 .navbar.navbar-static-top, .Dashboard_3 .navbar.navbar-static-top, .Dashboard_4_1 .navbar.navbar-static-top, .EmailView .navbar.navbar-static-top, .Inbox .navbar.navbar-static-top, .dashboards\.dashboard_2 nav.navbar, .dashboards\.dashboard_3 nav.navbar, .dashboards\.dashboard_4_1 nav.navbar, .mailbox\.email_compose nav.navbar, .mailbox\.email_view nav.navbar, .mailbox\.inbox nav.navbar {
            background: #fff
        }

        a.close-canvas-menu {
            position: absolute;
            top: 10px;
            right: 15px;
            z-index: 1011;
            color: #a7b1c2
        }

        a.close-canvas-menu:hover {
            color: #fff
        }

        .full-height {
            height: 100%
        }

        .fh-breadcrumb {
            height: calc(100% - 196px);
            margin: 0 -15px;
            position: relative
        }

        .fh-no-breadcrumb {
            height: calc(100% - 99px);
            margin: 0 -15px;
            position: relative
        }

        .fh-column {
            background: #fff;
            height: 100%;
            width: 240px;
            float: left
        }

        .modal-backdrop {
            z-index: 2040 !important
        }

        .modal {
            z-index: 2050 !important
        }

        .spiner-example {
            height: 200px;
            padding-top: 70px
        }

        .p-xxs {
            padding: 5px
        }

        .p-xs {
            padding: 10px
        }

        .p-sm {
            padding: 15px
        }

        .p-m {
            padding: 20px
        }

        .p-md {
            padding: 25px
        }

        .p-lg {
            padding: 30px
        }

        .p-xl {
            padding: 40px
        }

        .m-xxs {
            margin: 2px 4px
        }

        .m-xs {
            margin: 5px
        }

        .m-sm {
            margin: 10px
        }

        .m {
            margin: 15px
        }

        .m-md {
            margin: 20px
        }

        .m-lg {
            margin: 30px
        }

        .m-xl {
            margin: 50px
        }

        .m-n {
            margin: 0 !important
        }

        .m-l-none {
            margin-left: 0
        }

        .m-l-xs {
            margin-left: 5px
        }

        .m-l-sm {
            margin-left: 10px
        }

        .m-l {
            margin-left: 15px
        }

        .m-l-md {
            margin-left: 20px
        }

        .m-l-lg {
            margin-left: 30px
        }

        .m-l-xl {
            margin-left: 40px
        }

        .m-l-n-xxs {
            margin-left: -1px
        }

        .m-l-n-xs {
            margin-left: -5px
        }

        .m-l-n-sm {
            margin-left: -10px
        }

        .m-l-n {
            margin-left: -15px
        }

        .m-l-n-md {
            margin-left: -20px
        }

        .m-l-n-lg {
            margin-left: -30px
        }

        .m-l-n-xl {
            margin-left: -40px
        }

        .m-t-none {
            margin-top: 0
        }

        .m-t-xxs {
            margin-top: 1px
        }

        .m-t-xs {
            margin-top: 5px
        }

        .m-t-sm {
            margin-top: 10px
        }

        .m-t {
            margin-top: 15px
        }

        .m-t-md {
            margin-top: 20px
        }

        .m-t-lg {
            margin-top: 30px
        }

        .m-t-xl {
            margin-top: 40px
        }

        .m-t-n-xxs {
            margin-top: -1px
        }

        .m-t-n-xs {
            margin-top: -5px
        }

        .m-t-n-sm {
            margin-top: -10px
        }

        .m-t-n {
            margin-top: -15px
        }

        .m-t-n-md {
            margin-top: -20px
        }

        .m-t-n-lg {
            margin-top: -30px
        }

        .m-t-n-xl {
            margin-top: -40px
        }

        .m-r-none {
            margin-right: 0
        }

        .m-r-xxs {
            margin-right: 1px
        }

        .m-r-xs {
            margin-right: 5px
        }

        .m-r-sm {
            margin-right: 10px
        }

        .m-r {
            margin-right: 15px
        }

        .m-r-md {
            margin-right: 20px
        }

        .m-r-lg {
            margin-right: 30px
        }

        .m-r-xl {
            margin-right: 40px
        }

        .m-r-n-xxs {
            margin-right: -1px
        }

        .m-r-n-xs {
            margin-right: -5px
        }

        .m-r-n-sm {
            margin-right: -10px
        }

        .m-r-n {
            margin-right: -15px
        }

        .m-r-n-md {
            margin-right: -20px
        }

        .m-r-n-lg {
            margin-right: -30px
        }

        .m-r-n-xl {
            margin-right: -40px
        }

        .m-b-none {
            margin-bottom: 0
        }

        .m-b-xxs {
            margin-bottom: 1px
        }

        .m-b-xs {
            margin-bottom: 5px
        }

        .m-b-sm {
            margin-bottom: 10px
        }

        .m-b {
            margin-bottom: 15px
        }

        .m-b-md {
            margin-bottom: 20px
        }

        .m-b-lg {
            margin-bottom: 30px
        }

        .m-b-xl {
            margin-bottom: 40px
        }

        .m-b-n-xxs {
            margin-bottom: -1px
        }

        .m-b-n-xs {
            margin-bottom: -5px
        }

        .m-b-n-sm {
            margin-bottom: -10px
        }

        .m-b-n {
            margin-bottom: -15px
        }

        .m-b-n-md {
            margin-bottom: -20px
        }

        .m-b-n-lg {
            margin-bottom: -30px
        }

        .m-b-n-xl {
            margin-bottom: -40px
        }

        .space-15 {
            margin: 15px 0
        }

        .space-20 {
            margin: 20px 0
        }

        .space-25 {
            margin: 25px 0
        }

        .space-30 {
            margin: 30px 0
        }

        body.modal-open {
            padding-right: inherit !important
        }

        .search-form {
            margin-top: 10px
        }

        .search-result h3 {
            margin-bottom: 0;
            color: #1E0FBE
        }

        .search-result .search-link {
            color: #006621
        }

        .search-result p {
            font-size: 12px;
            margin-top: 5px
        }

        .contact-box {
            background-color: #fff;
            border: 1px solid #e7eaec;
            padding: 20px;
            margin-bottom: 20px
        }

        .contact-box a {
            color: inherit
        }

        .invoice-table tbody > tr > td:last-child, .invoice-table tbody > tr > td:nth-child(2), .invoice-table tbody > tr > td:nth-child(3), .invoice-table tbody > tr > td:nth-child(4), .invoice-table thead > tr > th:last-child, .invoice-table thead > tr > th:nth-child(2), .invoice-table thead > tr > th:nth-child(3), .invoice-table thead > tr > th:nth-child(4), .invoice-total > tbody > tr > td:first-child {
            text-align: right
        }

        .invoice-total > tbody > tr > td {
            border: 0 none
        }

        .invoice-total > tbody > tr > td:last-child {
            border-bottom: 1px solid #DDD;
            text-align: right;
            width: 15%
        }

        .middle-box {
            max-width: 400px;
            z-index: 100;
            margin: 0 auto;
            padding-top: 40px
        }

        .lockscreen.middle-box {
            width: 200px;
            padding-top: 110px
        }

        .loginscreen.middle-box {
            width: 300px
        }

        .loginColumns {
            max-width: 800px;
            margin: 0 auto;
            padding: 100px 20px 20px
        }

        .passwordBox {
            max-width: 460px;
            margin: 0 auto;
            padding: 100px 20px 20px
        }

        .logo-name {
            color: #e6e6e6;
            font-size: 180px;
            font-weight: 800;
            letter-spacing: -10px;
            margin-bottom: 0
        }

        .middle-box h1 {
            font-size: 170px
        }

        .wrapper .middle-box {
            margin-top: 140px
        }

        .lock-word {
            z-index: 10;
            position: absolute;
            top: 110px;
            left: 50%;
            margin-left: -470px
        }

        .lock-word span {
            font-size: 100px;
            font-weight: 600;
            color: #e9e9e9;
            display: inline-block
        }

        .lock-word .first-word {
            margin-right: 160px
        }

        .dashboard-header {
            border-top: 0;
            padding: 20px
        }

        .dashboard-header h2 {
            margin-top: 10px;
            font-size: 26px
        }

        .fist-item {
            border-top: none !important
        }

        .statistic-box {
            margin-top: 40px
        }

        .dashboard-header .list-group-item span.label {
            margin-right: 10px
        }

        .list-group.clear-list .list-group-item {
            border-top: 1px solid #e7eaec;
            border-bottom: 0;
            border-right: 0;
            border-left: 0;
            padding: 10px 0
        }

        ul.clear-list:first-child {
            border-top: none !important
        }

        .timeline-item .date i {
            position: absolute;
            top: 0;
            right: 0;
            padding: 5px;
            width: 30px;
            text-align: center;
            border-top: 1px solid #e7eaec;
            border-bottom: 1px solid #e7eaec;
            border-left: 1px solid #e7eaec;
            background: #f8f8f8
        }

        .timeline-item .date {
            text-align: right;
            width: 110px;
            position: relative;
            padding-top: 30px
        }

        .timeline-item .content {
            border-left: 1px solid #e7eaec;
            border-top: 1px solid #e7eaec;
            padding-top: 10px;
            min-height: 100px
        }

        .timeline-item .content:hover {
            background: #f6f6f6
        }

        ul.notes li, ul.tag-list li {
            list-style: none
        }

        ul.notes li h4 {
            margin-top: 20px;
            font-size: 16px
        }

        ul.notes li div {
            position: relative
        }

        ul.notes li div small {
            position: absolute;
            top: 5px;
            right: 5px;
            font-size: 10px
        }

        ul.notes li div a {
            position: absolute;
            right: 10px;
            bottom: 10px;
            color: inherit
        }

        ul.notes li {
            margin: 10px 40px 50px 0;
            float: left
        }

        ul.notes li div p {
            font-size: 12px
        }

        ul.notes li div {
            -webkit-transform: rotate(-6deg);
            -o-transform: rotate(-6deg);
            -moz-transform: rotate(-6deg)
        }

        ul.notes li:nth-child(even) div {
            -o-transform: rotate(4deg);
            -webkit-transform: rotate(4deg);
            -moz-transform: rotate(4deg);
            position: relative;
            top: 5px
        }

        ul.notes li:nth-child(3n) div {
            -o-transform: rotate(-3deg);
            -webkit-transform: rotate(-3deg);
            -moz-transform: rotate(-3deg);
            position: relative;
            top: -5px
        }

        ul.notes li:nth-child(5n) div {
            -o-transform: rotate(5deg);
            -webkit-transform: rotate(5deg);
            -moz-transform: rotate(5deg);
            position: relative;
            top: -10px
        }

        ul.notes li div:focus, ul.notes li div:hover {
            -webkit-transform: scale(1.1);
            -moz-transform: scale(1.1);
            -o-transform: scale(1.1);
            position: relative;
            z-index: 5
        }

        ul.notes li div {
            text-decoration: none;
            color: #000;
            background: #ffc;
            display: block;
            height: 210px;
            width: 210px;
            padding: 1em;
            box-shadow: 5px 5px 7px rgba(33, 33, 33, .7);
            -webkit-transition: -webkit-transform .15s linear
        }

        .file-box {
            float: left;
            width: 220px
        }

        .file-manager h5 {
            text-transform: uppercase
        }

        .file-manager {
            list-style: none outside none;
            margin: 0;
            padding: 0
        }

        .folder-list li a {
            color: #666;
            display: block;
            padding: 5px 0
        }

        .folder-list li {
            border-bottom: 1px solid #e7eaec;
            display: block
        }

        .folder-list li i {
            margin-right: 8px;
            color: #3d4d5d
        }

        .category-list li a {
            color: #666;
            display: block;
            padding: 5px 0
        }

        .category-list li {
            display: block
        }

        .category-list li i {
            margin-right: 8px;
            color: #3d4d5d
        }

        .category-list li a .text-navy {
            color: #1ab394
        }

        .category-list li a .text-primary {
            color: #1c84c6
        }

        .category-list li a .text-info {
            color: #23c6c8
        }

        .category-list li a .text-danger {
            color: #EF5352
        }

        .category-list li a .text-warning {
            color: #F8AC59
        }

        .file-manager h5.tag-title {
            margin-top: 20px
        }

        .tag-list li {
            float: left
        }

        .tag-list li a {
            font-size: 10px;
            background-color: #f3f3f4;
            padding: 5px 12px;
            color: inherit;
            border-radius: 2px;
            border: 1px solid #e7eaec;
            margin-right: 5px;
            margin-top: 5px;
            display: block
        }

        .file {
            border: 1px solid #e7eaec;
            padding: 0;
            background-color: #fff;
            position: relative;
            margin-bottom: 20px;
            margin-right: 20px
        }

        .file-manager .hr-line-dashed {
            margin: 15px 0
        }

        .file .icon, .file .image {
            height: 100px;
            overflow: hidden
        }

        .file .icon {
            padding: 15px 10px;
            text-align: center
        }

        .file-control {
            color: inherit;
            font-size: 11px;
            margin-right: 10px
        }

        .file-control.active {
            text-decoration: underline
        }

        .file .icon i {
            font-size: 70px;
            color: #dadada
        }

        .file .file-name {
            padding: 10px;
            background-color: #f8f8f8;
            border-top: 1px solid #e7eaec
        }

        .file-name small {
            color: #676a6c
        }

        .corner {
            position: absolute;
            display: inline-block;
            width: 0;
            height: 0;
            line-height: 0;
            border: .6em solid transparent;
            border-right: .6em solid #f1f1f1;
            border-bottom: .6em solid #f1f1f1;
            right: 0;
            bottom: 0
        }

        a.compose-mail {
            padding: 8px 10px
        }

        .mail-search {
            max-width: 300px
        }

        .profile-content {
            border-top: none !important
        }

        .feed-activity-list .feed-element {
            border-bottom: 1px solid #e7eaec
        }

        .feed-element:first-child {
            margin-top: 0
        }

        .feed-element {
            padding-bottom: 15px
        }

        .feed-element, .feed-element .media {
            margin-top: 15px
        }

        .feed-element, .media-body {
            overflow: hidden
        }

        .feed-element > .pull-left {
            margin-right: 10px
        }

        .dropdown-messages-box img.img-circle, .feed-element img.img-circle {
            width: 38px;
            height: 38px
        }

        .feed-element .well {
            border: 1px solid #e7eaec;
            box-shadow: none;
            margin-top: 10px;
            margin-bottom: 5px;
            padding: 10px 20px;
            font-size: 11px;
            line-height: 16px
        }

        .feed-element .actions {
            margin-top: 10px
        }

        .feed-element .photos {
            margin: 10px 0
        }

        .feed-photo {
            max-height: 180px;
            border-radius: 4px;
            overflow: hidden;
            margin-right: 10px;
            margin-bottom: 10px
        }

        .mail-box {
            background-color: #fff;
            border: 1px solid #e7eaec;
            border-top: 0;
            padding: 0;
            margin-bottom: 20px
        }

        .mail-box-header {
            background-color: #fff;
            border: 1px solid #e7eaec;
            border-bottom: 0;
            padding: 30px 20px 20px
        }

        .mail-box-header h2 {
            margin-top: 0
        }

        .mailbox-content .tag-list li a {
            background: #fff
        }

        .mail-body {
            border-top: 1px solid #e7eaec;
            padding: 20px
        }

        .mail-text {
            border-top: 1px solid #e7eaec
        }

        .mail-text .note-toolbar {
            padding: 10px 15px
        }

        .mail-body .form-group {
            margin-bottom: 5px
        }

        .mail-text .note-editor .note-toolbar {
            background-color: #F9F8F8
        }

        .mail-attachment {
            border-top: 1px solid #e7eaec;
            padding: 20px;
            font-size: 12px
        }

        .mailbox-content {
            background: 0 0;
            border: none;
            padding: 10px
        }

        .mail-ontact {
            width: 23%
        }

        .project-actions, .project-people {
            text-align: right;
            vertical-align: middle
        }

        dd.project-people {
            text-align: left;
            margin-top: 5px
        }

        .project-people img {
            width: 32px;
            height: 32px
        }

        .project-title a {
            font-size: 14px;
            color: #676a6c;
            font-weight: 600
        }

        .project-list table tr td {
            border-top: none;
            border-bottom: 1px solid #e7eaec;
            padding: 15px 10px;
            vertical-align: middle
        }

        .project-manager .tag-list li a {
            font-size: 10px;
            background-color: #fff;
            padding: 5px 12px;
            color: inherit;
            border-radius: 2px;
            border: 1px solid #e7eaec;
            margin-right: 5px;
            margin-top: 5px;
            display: block
        }

        .project-files li a {
            font-size: 11px;
            color: #676a6c;
            margin-left: 10px;
            line-height: 22px
        }

        .faq-item {
            padding: 20px;
            margin-bottom: 2px;
            background: #fff
        }

        .faq-question {
            font-size: 18px;
            font-weight: 600;
            color: #1ab394;
            display: block
        }

        .faq-question:hover {
            color: #179d82
        }

        .faq-answer {
            margin-top: 10px;
            background: #f3f3f4;
            border: 1px solid #e7eaec;
            border-radius: 3px;
            padding: 15px
        }

        .faq-item .tag-item {
            background: #f3f3f4;
            padding: 2px 6px;
            font-size: 10px;
            text-transform: uppercase
        }

        .message-input {
            height: 90px !important
        }

        .chat-avatar {
            white: 36px;
            height: 36px;
            float: left;
            margin-right: 10px
        }

        .chat-user-name {
            padding: 10px
        }

        .chat-user {
            padding: 8px 10px;
            border-bottom: 1px solid #e7eaec
        }

        .chat-user a {
            color: inherit
        }

        .chat-view {
            z-index: 20012
        }

        .chat-statistic, .chat-users {
            margin-left: -30px
        }

        @media (max-width: 992px) {
            .chat-statistic, .chat-users {
                margin-left: 0
            }
        }

        .chat-view .ibox-content {
            padding: 0
        }

        .chat-message {
            padding: 10px 20px
        }

        .message-avatar {
            height: 48px;
            width: 48px;
            border: 1px solid #e7eaec;
            border-radius: 4px;
            margin-top: 1px
        }

        .chat-discussion .chat-message:nth-child(2n+1) .message-avatar {
            float: left;
            margin-right: 10px
        }

        .chat-discussion .chat-message:nth-child(2n) .message-avatar {
            float: right;
            margin-left: 10px
        }

        .message {
            background-color: #fff;
            border: 1px solid #e7eaec;
            text-align: left;
            display: block;
            padding: 10px 20px;
            position: relative;
            border-radius: 4px
        }

        .chat-discussion .chat-message:nth-child(2n+1) .message-date {
            float: right
        }

        .chat-discussion .chat-message:nth-child(2n) .message-date {
            float: left
        }

        .chat-discussion .chat-message:nth-child(2n+1) .message {
            text-align: left;
            margin-left: 55px
        }

        .chat-discussion .chat-message:nth-child(2n) .message {
            text-align: right;
            margin-right: 55px
        }

        .message-date {
            font-size: 10px;
            color: #888
        }

        .message-content {
            display: block
        }

        .chat-discussion {
            background: #eee;
            padding: 15px;
            height: 400px;
            overflow-y: auto
        }

        .chat-users {
            overflow-y: auto;
            height: 400px
        }

        .chat-message-form .form-group {
            margin-bottom: 0
        }

        .jstree-open > .jstree-anchor > .fa-folder:before {
            content: "\f07c"
        }

        .jstree-default .jstree-icon.none {
            width: 0
        }

        .clients-list {
            margin-top: 20px
        }

        .clients-list .tab-pane {
            position: relative;
            height: 600px
        }

        .client-detail {
            position: relative;
            height: 620px
        }

        .clients-list table tr td {
            height: 46px;
            vertical-align: middle;
            border: none
        }

        .client-link {
            font-weight: 600;
            color: inherit
        }

        .client-link:hover {
            color: inherit
        }

        .client-avatar {
            width: 42px
        }

        .client-avatar img {
            width: 28px;
            height: 28px;
            border-radius: 50%
        }

        .contact-type {
            width: 20px;
            color: #c1c3c4
        }

        .client-status {
            text-align: left
        }

        .client-detail .vertical-timeline-content p {
            margin: 0
        }

        .client-detail .vertical-timeline-icon.gray-bg {
            color: #a7aaab
        }

        .clients-list .nav-tabs > li.active > a, .clients-list .nav-tabs > li.active > a:focus, .clients-list .nav-tabs > li.active > a:hover {
            border-bottom: 1px solid #fff
        }

        .blog h2 {
            font-weight: 700
        }

        .blog .btn, .blog h5 {
            margin: 0 0 5px
        }

        .article h1 {
            font-size: 48px;
            font-weight: 700;
            color: #2F4050
        }

        .article p {
            font-size: 15px;
            line-height: 26px
        }

        .article-title {
            text-align: center;
            margin: 60px 0 40px
        }

        .article .ibox-content {
            padding: 40px
        }

        .issue-tracker .btn-link {
            color: #1ab394
        }

        table.issue-tracker tbody tr td {
            vertical-align: middle;
            height: 50px
        }

        .issue-info {
            width: 50%
        }

        .issue-info a {
            font-weight: 600;
            color: #676a6c
        }

        .issue-info small {
            display: block
        }

        .team-members {
            margin: 10px 0
        }

        .team-members img.img-circle {
            width: 42px;
            height: 42px;
            margin-bottom: 5px
        }

        .sortable-list {
            padding: 10px 0
        }

        .agile-list {
            list-style: none;
            margin: 0
        }

        .agile-list li {
            background: #FAFAFB;
            border: 1px solid #e7eaec;
            margin: 0 0 10px;
            padding: 10px;
            border-radius: 2px
        }

        .agile-list li:hover {
            cursor: pointer;
            background: #fff
        }

        .agile-list li.warning-element {
            border-left: 3px solid #f8ac59
        }

        .agile-list li.danger-element {
            border-left: 3px solid #ed5565
        }

        .agile-list li.info-element {
            border-left: 3px solid #1c84c6
        }

        .agile-list li.success-element {
            border-left: 3px solid #1ab394
        }

        .agile-detail {
            margin-top: 5px;
            font-size: 12px
        }

        ins {
            background-color: #c6ffc6;
            text-decoration: none
        }

        del {
            background-color: #ffc6c6
        }

        #small-chat {
            position: fixed;
            bottom: 50px;
            right: 26px;
            z-index: 100
        }

        #small-chat .badge {
            position: absolute;
            top: -3px;
            right: -4px
        }

        .open-small-chat {
            height: 38px;
            width: 38px;
            display: block;
            background: #1ab394;
            padding: 9px 8px;
            text-align: center;
            color: #fff;
            border-radius: 50%
        }

        .open-small-chat:hover {
            color: #fff;
            background: #1ab394
        }

        .small-chat-box {
            display: none;
            position: fixed;
            bottom: 50px;
            right: 80px;
            background: #fff;
            border: 1px solid #e7eaec;
            width: 230px;
            height: 320px;
            border-radius: 4px
        }

        .small-chat-box.ng-small-chat {
            display: block
        }

        .body-small .small-chat-box {
            bottom: 70px;
            right: 20px
        }

        .small-chat-box.active {
            display: block
        }

        .small-chat-box .heading {
            background: #2f4050;
            padding: 8px 15px;
            font-weight: 700;
            color: #fff
        }

        .small-chat-box .chat-date {
            opacity: .6;
            font-size: 10px;
            font-weight: 400
        }

        .small-chat-box .content {
            padding: 15px
        }

        .small-chat-box .content .author-name {
            font-weight: 700;
            margin-bottom: 3px;
            font-size: 11px
        }

        .small-chat-box .content > div {
            padding-bottom: 20px
        }

        .small-chat-box .content .chat-message {
            padding: 5px 10px;
            border-radius: 6px;
            font-size: 11px;
            line-height: 14px;
            max-width: 80%;
            background: #f3f3f4;
            margin-bottom: 10px
        }

        .small-chat-box .content .chat-message.active {
            background: #1ab394;
            color: #fff
        }

        .small-chat-box .content .left {
            text-align: left;
            clear: both
        }

        .small-chat-box .content .left .chat-message {
            float: left
        }

        .small-chat-box .content .right {
            text-align: right;
            clear: both
        }

        .small-chat-box .content .right .chat-message {
            float: right
        }

        .small-chat-box .form-chat {
            padding: 10px
        }

        .sk-spinner-rotating-plane.sk-spinner {
            width: 30px;
            height: 30px;
            background-color: #1ab394;
            margin: 0 auto;
            -webkit-animation: sk-rotatePlane 1.2s infinite ease-in-out;
            animation: sk-rotatePlane 1.2s infinite ease-in-out
        }

        @-webkit-keyframes sk-rotatePlane {
            0% {
                -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
                transform: perspective(120px) rotateX(0deg) rotateY(0deg)
            }

            50% {
                -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
                transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg)
            }

            100% {
                -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
                transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg)
            }
        }

        @keyframes sk-rotatePlane {
            0% {
                -webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
                transform: perspective(120px) rotateX(0deg) rotateY(0deg)
            }

            50% {
                -webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
                transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg)
            }

            100% {
                -webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
                transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg)
            }
        }

        .sk-spinner-double-bounce.sk-spinner {
            width: 40px;
            height: 40px;
            position: relative;
            margin: 0 auto
        }

        .sk-spinner-double-bounce .sk-double-bounce1, .sk-spinner-double-bounce .sk-double-bounce2 {
            width: 100%;
            height: 100%;
            border-radius: 50%;
            background-color: #1ab394;
            opacity: .6;
            position: absolute;
            top: 0;
            left: 0;
            -webkit-animation: sk-doubleBounce 2s infinite ease-in-out;
            animation: sk-doubleBounce 2s infinite ease-in-out
        }

        .sk-spinner-double-bounce .sk-double-bounce2 {
            -webkit-animation-delay: -1s;
            animation-delay: -1s
        }

        @-webkit-keyframes sk-doubleBounce {
            0%, 100% {
                -webkit-transform: scale(0);
                transform: scale(0)
            }

            50% {
                -webkit-transform: scale(1);
                transform: scale(1)
            }
        }

        @keyframes sk-doubleBounce {
            0%, 100% {
                -webkit-transform: scale(0);
                transform: scale(0)
            }

            50% {
                -webkit-transform: scale(1);
                transform: scale(1)
            }
        }

        .sk-spinner-wave.sk-spinner {
            margin: 0 auto;
            width: 50px;
            height: 30px;
            text-align: center;
            font-size: 10px
        }

        .sk-spinner-wave div {
            background-color: #1ab394;
            height: 100%;
            width: 6px;
            display: inline-block;
            -webkit-animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
            animation: sk-waveStretchDelay 1.2s infinite ease-in-out
        }

        .sk-spinner-wave .sk-rect2 {
            -webkit-animation-delay: -1.1s;
            animation-delay: -1.1s
        }

        .sk-spinner-wave .sk-rect3 {
            -webkit-animation-delay: -1s;
            animation-delay: -1s
        }

        .sk-spinner-wave .sk-rect4 {
            -webkit-animation-delay: -.9s;
            animation-delay: -.9s
        }

        .sk-spinner-wave .sk-rect5 {
            -webkit-animation-delay: -.8s;
            animation-delay: -.8s
        }

        @-webkit-keyframes sk-waveStretchDelay {
            0%, 100%, 40% {
                -webkit-transform: scaleY(0.4);
                transform: scaleY(0.4)
            }

            20% {
                -webkit-transform: scaleY(1);
                transform: scaleY(1)
            }
        }

        @keyframes sk-waveStretchDelay {
            0%, 100%, 40% {
                -webkit-transform: scaleY(0.4);
                transform: scaleY(0.4)
            }

            20% {
                -webkit-transform: scaleY(1);
                transform: scaleY(1)
            }
        }

        .sk-spinner-wandering-cubes.sk-spinner {
            margin: 0 auto;
            width: 32px;
            height: 32px;
            position: relative
        }

        .sk-spinner-wandering-cubes .sk-cube1, .sk-spinner-wandering-cubes .sk-cube2 {
            background-color: #1ab394;
            width: 10px;
            height: 10px;
            position: absolute;
            top: 0;
            left: 0;
            -webkit-animation: sk-wanderingCubeMove 1.8s infinite ease-in-out;
            animation: sk-wanderingCubeMove 1.8s infinite ease-in-out
        }

        .sk-spinner-wandering-cubes .sk-cube2 {
            -webkit-animation-delay: -.9s;
            animation-delay: -.9s
        }

        @-webkit-keyframes sk-wanderingCubeMove {
            25% {
                -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);
                transform: translateX(42px) rotate(-90deg) scale(0.5)
            }

            50% {
                -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);
                transform: translateX(42px) translateY(42px) rotate(-179deg)
            }

            50.1% {
                -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);
                transform: translateX(42px) translateY(42px) rotate(-180deg)
            }

            75% {
                -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
                transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5)
            }

            100% {
                -webkit-transform: rotate(-360deg);
                transform: rotate(-360deg)
            }
        }

        @keyframes sk-wanderingCubeMove {
            25% {
                -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);
                transform: translateX(42px) rotate(-90deg) scale(0.5)
            }

            50% {
                -webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);
                transform: translateX(42px) translateY(42px) rotate(-179deg)
            }

            50.1% {
                -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);
                transform: translateX(42px) translateY(42px) rotate(-180deg)
            }

            75% {
                -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
                transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5)
            }

            100% {
                -webkit-transform: rotate(-360deg);
                transform: rotate(-360deg)
            }
        }

        .sk-spinner-pulse.sk-spinner {
            width: 40px;
            height: 40px;
            margin: 0 auto;
            background-color: #1ab394;
            border-radius: 100%;
            -webkit-animation: sk-pulseScaleOut 1s infinite ease-in-out;
            animation: sk-pulseScaleOut 1s infinite ease-in-out
        }

        @-webkit-keyframes sk-pulseScaleOut {
            0% {
                -webkit-transform: scale(0);
                transform: scale(0)
            }

            100% {
                -webkit-transform: scale(1);
                transform: scale(1);
                opacity: 0
            }
        }

        @keyframes sk-pulseScaleOut {
            0% {
                -webkit-transform: scale(0);
                transform: scale(0)
            }

            100% {
                -webkit-transform: scale(1);
                transform: scale(1);
                opacity: 0
            }
        }

        .sk-spinner-chasing-dots.sk-spinner {
            margin: 0 auto;
            width: 40px;
            height: 40px;
            position: relative;
            text-align: center;
            -webkit-animation: sk-chasingDotsRotate 2s infinite linear;
            animation: sk-chasingDotsRotate 2s infinite linear
        }

        .sk-spinner-chasing-dots .sk-dot1, .sk-spinner-chasing-dots .sk-dot2 {
            width: 60%;
            height: 60%;
            display: inline-block;
            position: absolute;
            top: 0;
            background-color: #1ab394;
            border-radius: 100%;
            -webkit-animation: sk-chasingDotsBounce 2s infinite ease-in-out;
            animation: sk-chasingDotsBounce 2s infinite ease-in-out
        }

        .sk-spinner-chasing-dots .sk-dot2 {
            top: auto;
            bottom: 0;
            -webkit-animation-delay: -1s;
            animation-delay: -1s
        }

        @-webkit-keyframes sk-chasingDotsRotate {
            100% {
                -webkit-transform: rotate(360deg);
                transform: rotate(360deg)
            }
        }

        @keyframes sk-chasingDotsRotate {
            100% {
                -webkit-transform: rotate(360deg);
                transform: rotate(360deg)
            }
        }

        @-webkit-keyframes sk-chasingDotsBounce {
            0%, 100% {
                -webkit-transform: scale(0);
                transform: scale(0)
            }

            50% {
                -webkit-transform: scale(1);
                transform: scale(1)
            }
        }

        @keyframes sk-chasingDotsBounce {
            0%, 100% {
                -webkit-transform: scale(0);
                transform: scale(0)
            }

            50% {
                -webkit-transform: scale(1);
                transform: scale(1)
            }
        }

        .sk-spinner-three-bounce.sk-spinner {
            margin: 0 auto;
            width: 70px;
            text-align: center
        }

        .sk-spinner-three-bounce div {
            width: 18px;
            height: 18px;
            background-color: #1ab394;
            border-radius: 100%;
            display: inline-block;
            -webkit-animation: sk-threeBounceDelay 1.4s infinite ease-in-out;
            animation: sk-threeBounceDelay 1.4s infinite ease-in-out;
            -webkit-animation-fill-mode: both;
            animation-fill-mode: both
        }

        .sk-spinner-three-bounce .sk-bounce1 {
            -webkit-animation-delay: -.32s;
            animation-delay: -.32s
        }

        .sk-spinner-three-bounce .sk-bounce2 {
            -webkit-animation-delay: -.16s;
            animation-delay: -.16s
        }

        @-webkit-keyframes sk-threeBounceDelay {
            0%, 100%, 80% {
                -webkit-transform: scale(0);
                transform: scale(0)
            }

            40% {
                -webkit-transform: scale(1);
                transform: scale(1)
            }
        }

        @keyframes sk-threeBounceDelay {
            0%, 100%, 80% {
                -webkit-transform: scale(0);
                transform: scale(0)
            }

            40% {
                -webkit-transform: scale(1);
                transform: scale(1)
            }
        }

        .sk-spinner-circle.sk-spinner {
            margin: 0 auto;
            width: 22px;
            height: 22px;
            position: relative
        }

        .sk-spinner-circle .sk-circle {
            width: 100%;
            height: 100%;
            position: absolute;
            left: 0;
            top: 0
        }

        .sk-spinner-circle .sk-circle:before {
            content: '';
            display: block;
            margin: 0 auto;
            width: 20%;
            height: 20%;
            background-color: #1ab394;
            border-radius: 100%;
            -webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out;
            animation: sk-circleBounceDelay 1.2s infinite ease-in-out;
            -webkit-animation-fill-mode: both;
            animation-fill-mode: both
        }

        .sk-spinner-circle .sk-circle2 {
            -webkit-transform: rotate(30deg);
            -ms-transform: rotate(30deg);
            transform: rotate(30deg)
        }

        .sk-spinner-circle .sk-circle3 {
            -webkit-transform: rotate(60deg);
            -ms-transform: rotate(60deg);
            transform: rotate(60deg)
        }

        .sk-spinner-circle .sk-circle4 {
            -webkit-transform: rotate(90deg);
            -ms-transform: rotate(90deg);
            transform: rotate(90deg)
        }

        .sk-spinner-circle .sk-circle5 {
            -webkit-transform: rotate(120deg);
            -ms-transform: rotate(120deg);
            transform: rotate(120deg)
        }

        .sk-spinner-circle .sk-circle6 {
            -webkit-transform: rotate(150deg);
            -ms-transform: rotate(150deg);
            transform: rotate(150deg)
        }

        .sk-spinner-circle .sk-circle7 {
            -webkit-transform: rotate(180deg);
            -ms-transform: rotate(180deg);
            transform: rotate(180deg)
        }

        .sk-spinner-circle .sk-circle8 {
            -webkit-transform: rotate(210deg);
            -ms-transform: rotate(210deg);
            transform: rotate(210deg)
        }

        .sk-spinner-circle .sk-circle9 {
            -webkit-transform: rotate(240deg);
            -ms-transform: rotate(240deg);
            transform: rotate(240deg)
        }

        .sk-spinner-circle .sk-circle10 {
            -webkit-transform: rotate(270deg);
            -ms-transform: rotate(270deg);
            transform: rotate(270deg)
        }

        .sk-spinner-circle .sk-circle11 {
            -webkit-transform: rotate(300deg);
            -ms-transform: rotate(300deg);
            transform: rotate(300deg)
        }

        .sk-spinner-circle .sk-circle12 {
            -webkit-transform: rotate(330deg);
            -ms-transform: rotate(330deg);
            transform: rotate(330deg)
        }

        .sk-spinner-circle .sk-circle2:before {
            -webkit-animation-delay: -1.1s;
            animation-delay: -1.1s
        }

        .sk-spinner-circle .sk-circle3:before {
            -webkit-animation-delay: -1s;
            animation-delay: -1s
        }

        .sk-spinner-circle .sk-circle4:before {
            -webkit-animation-delay: -.9s;
            animation-delay: -.9s
        }

        .sk-spinner-circle .sk-circle5:before {
            -webkit-animation-delay: -.8s;
            animation-delay: -.8s
        }

        .sk-spinner-circle .sk-circle6:before {
            -webkit-animation-delay: -.7s;
            animation-delay: -.7s
        }

        .sk-spinner-circle .sk-circle7:before {
            -webkit-animation-delay: -.6s;
            animation-delay: -.6s
        }

        .sk-spinner-circle .sk-circle8:before {
            -webkit-animation-delay: -.5s;
            animation-delay: -.5s
        }

        .sk-spinner-circle .sk-circle9:before {
            -webkit-animation-delay: -.4s;
            animation-delay: -.4s
        }

        .sk-spinner-circle .sk-circle10:before {
            -webkit-animation-delay: -.3s;
            animation-delay: -.3s
        }

        .sk-spinner-circle .sk-circle11:before {
            -webkit-animation-delay: -.2s;
            animation-delay: -.2s
        }

        .sk-spinner-circle .sk-circle12:before {
            -webkit-animation-delay: -.1s;
            animation-delay: -.1s
        }

        @-webkit-keyframes sk-circleBounceDelay {
            0%, 100%, 80% {
                -webkit-transform: scale(0);
                transform: scale(0)
            }

            40% {
                -webkit-transform: scale(1);
                transform: scale(1)
            }
        }

        @keyframes sk-circleBounceDelay {
            0%, 100%, 80% {
                -webkit-transform: scale(0);
                transform: scale(0)
            }

            40% {
                -webkit-transform: scale(1);
                transform: scale(1)
            }
        }

        .sk-spinner-cube-grid.sk-spinner {
            width: 30px;
            height: 30px;
            margin: 0 auto
        }

        .sk-spinner-cube-grid .sk-cube {
            width: 33%;
            height: 33%;
            background-color: #1ab394;
            float: left;
            -webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
            animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out
        }

        .sk-spinner-cube-grid .sk-cube:nth-child(1) {
            -webkit-animation-delay: .2s;
            animation-delay: .2s
        }

        .sk-spinner-cube-grid .sk-cube:nth-child(2) {
            -webkit-animation-delay: .3s;
            animation-delay: .3s
        }

        .sk-spinner-cube-grid .sk-cube:nth-child(3) {
            -webkit-animation-delay: .4s;
            animation-delay: .4s
        }

        .sk-spinner-cube-grid .sk-cube:nth-child(4) {
            -webkit-animation-delay: .1s;
            animation-delay: .1s
        }

        .sk-spinner-cube-grid .sk-cube:nth-child(5) {
            -webkit-animation-delay: .2s;
            animation-delay: .2s
        }

        .sk-spinner-cube-grid .sk-cube:nth-child(6) {
            -webkit-animation-delay: .3s;
            animation-delay: .3s
        }

        .sk-spinner-cube-grid .sk-cube:nth-child(7) {
            -webkit-animation-delay: 0s;
            animation-delay: 0s
        }

        .sk-spinner-cube-grid .sk-cube:nth-child(8) {
            -webkit-animation-delay: .1s;
            animation-delay: .1s
        }

        .sk-spinner-cube-grid .sk-cube:nth-child(9) {
            -webkit-animation-delay: .2s;
            animation-delay: .2s
        }

        @-webkit-keyframes sk-cubeGridScaleDelay {
            0%, 100%, 70% {
                -webkit-transform: scale3D(1, 1, 1);
                transform: scale3D(1, 1, 1)
            }

            35% {
                -webkit-transform: scale3D(0, 0, 1);
                transform: scale3D(0, 0, 1)
            }
        }

        @keyframes sk-cubeGridScaleDelay {
            0%, 100%, 70% {
                -webkit-transform: scale3D(1, 1, 1);
                transform: scale3D(1, 1, 1)
            }

            35% {
                -webkit-transform: scale3D(0, 0, 1);
                transform: scale3D(0, 0, 1)
            }
        }

        .sk-spinner-wordpress.sk-spinner {
            background-color: #1ab394;
            width: 30px;
            height: 30px;
            border-radius: 30px;
            position: relative;
            margin: 0 auto;
            -webkit-animation: sk-innerCircle 1s linear infinite;
            animation: sk-innerCircle 1s linear infinite
        }

        .sk-spinner-wordpress .sk-inner-circle {
            display: block;
            background-color: #fff;
            width: 8px;
            height: 8px;
            position: absolute;
            border-radius: 8px;
            top: 5px;
            left: 5px
        }

        @-webkit-keyframes sk-innerCircle {
            0% {
                -webkit-transform: rotate(0);
                transform: rotate(0)
            }

            100% {
                -webkit-transform: rotate(360deg);
                transform: rotate(360deg)
            }
        }

        @keyframes sk-innerCircle {
            0% {
                -webkit-transform: rotate(0);
                transform: rotate(0)
            }

            100% {
                -webkit-transform: rotate(360deg);
                transform: rotate(360deg)
            }
        }

        .sk-spinner-fading-circle.sk-spinner {
            margin: 0 auto;
            width: 22px;
            height: 22px;
            position: relative
        }

        .sk-spinner-fading-circle .sk-circle {
            width: 100%;
            height: 100%;
            position: absolute;
            left: 0;
            top: 0
        }

        .sk-spinner-fading-circle .sk-circle:before {
            content: '';
            display: block;
            margin: 0 auto;
            width: 18%;
            height: 18%;
            background-color: #1ab394;
            border-radius: 100%;
            -webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out;
            animation: sk-circleFadeDelay 1.2s infinite ease-in-out;
            -webkit-animation-fill-mode: both;
            animation-fill-mode: both
        }

        .sk-spinner-fading-circle .sk-circle2 {
            -webkit-transform: rotate(30deg);
            -ms-transform: rotate(30deg);
            transform: rotate(30deg)
        }

        .sk-spinner-fading-circle .sk-circle3 {
            -webkit-transform: rotate(60deg);
            -ms-transform: rotate(60deg);
            transform: rotate(60deg)
        }

        .sk-spinner-fading-circle .sk-circle4 {
            -webkit-transform: rotate(90deg);
            -ms-transform: rotate(90deg);
            transform: rotate(90deg)
        }

        .sk-spinner-fading-circle .sk-circle5 {
            -webkit-transform: rotate(120deg);
            -ms-transform: rotate(120deg);
            transform: rotate(120deg)
        }

        .sk-spinner-fading-circle .sk-circle6 {
            -webkit-transform: rotate(150deg);
            -ms-transform: rotate(150deg);
            transform: rotate(150deg)
        }

        .sk-spinner-fading-circle .sk-circle7 {
            -webkit-transform: rotate(180deg);
            -ms-transform: rotate(180deg);
            transform: rotate(180deg)
        }

        .sk-spinner-fading-circle .sk-circle8 {
            -webkit-transform: rotate(210deg);
            -ms-transform: rotate(210deg);
            transform: rotate(210deg)
        }

        .sk-spinner-fading-circle .sk-circle9 {
            -webkit-transform: rotate(240deg);
            -ms-transform: rotate(240deg);
            transform: rotate(240deg)
        }

        .sk-spinner-fading-circle .sk-circle10 {
            -webkit-transform: rotate(270deg);
            -ms-transform: rotate(270deg);
            transform: rotate(270deg)
        }

        .sk-spinner-fading-circle .sk-circle11 {
            -webkit-transform: rotate(300deg);
            -ms-transform: rotate(300deg);
            transform: rotate(300deg)
        }

        .sk-spinner-fading-circle .sk-circle12 {
            -webkit-transform: rotate(330deg);
            -ms-transform: rotate(330deg);
            transform: rotate(330deg)
        }

        .sk-spinner-fading-circle .sk-circle2:before {
            -webkit-animation-delay: -1.1s;
            animation-delay: -1.1s
        }

        .sk-spinner-fading-circle .sk-circle3:before {
            -webkit-animation-delay: -1s;
            animation-delay: -1s
        }

        .sk-spinner-fading-circle .sk-circle4:before {
            -webkit-animation-delay: -.9s;
            animation-delay: -.9s
        }

        .sk-spinner-fading-circle .sk-circle5:before {
            -webkit-animation-delay: -.8s;
            animation-delay: -.8s
        }

        .sk-spinner-fading-circle .sk-circle6:before {
            -webkit-animation-delay: -.7s;
            animation-delay: -.7s
        }

        .sk-spinner-fading-circle .sk-circle7:before {
            -webkit-animation-delay: -.6s;
            animation-delay: -.6s
        }

        .sk-spinner-fading-circle .sk-circle8:before {
            -webkit-animation-delay: -.5s;
            animation-delay: -.5s
        }

        .sk-spinner-fading-circle .sk-circle9:before {
            -webkit-animation-delay: -.4s;
            animation-delay: -.4s
        }

        .sk-spinner-fading-circle .sk-circle10:before {
            -webkit-animation-delay: -.3s;
            animation-delay: -.3s
        }

        .sk-spinner-fading-circle .sk-circle11:before {
            -webkit-animation-delay: -.2s;
            animation-delay: -.2s
        }

        .sk-spinner-fading-circle .sk-circle12:before {
            -webkit-animation-delay: -.1s;
            animation-delay: -.1s
        }

        @-webkit-keyframes sk-circleFadeDelay {
            0%, 100%, 39% {
                opacity: 0
            }

            40% {
                opacity: 1
            }
        }

        @keyframes sk-circleFadeDelay {
            0%, 100%, 39% {
                opacity: 0
            }

            40% {
                opacity: 1
            }
        }

        body.rtls #page-wrapper {
            margin: 0 220px 0 0
        }

        body.rtls .nav-second-level li a {
            padding: 7px 35px 7px 10px
        }

        body.rtls .ibox-title h5 {
            float: right
        }

        body.rtls .pull-right {
            float: left !important
        }

        body.rtls .pull-left {
            float: right !important
        }

        body.rtls .ibox-tools, body.rtls .stat-percent {
            float: left
        }

        body.rtls .navbar-right {
            float: left !important
        }

        body.rtls .navbar-top-links li:last-child {
            margin-right: 0
        }

        body.rtls .minimalize-styl-2 {
            float: right;
            margin: 14px 20px 5px 5px
        }

        body.rtls .feed-element > .pull-left {
            margin-left: 10px;
            margin-right: 0
        }

        body.rtls .timeline-item .date {
            text-align: left
        }

        body.rtls .timeline-item .date i {
            left: 0;
            right: auto
        }

        body.rtls .timeline-item .content {
            border-right: 1px solid #e7eaec;
            border-left: none
        }

        body.rtls .toast-close-button {
            float: left
        }

        body.rtls #toast-container > .toast:before {
            margin: auto -1.5em auto .5em
        }

        body.rtls #toast-container > div {
            padding: 15px 50px 15px 15px
        }

        body.rtls .center-orientation .vertical-timeline-icon i {
            margin-left: 0;
            margin-right: -12px
        }

        body.rtls .vertical-timeline-icon i {
            right: 50%;
            left: auto;
            margin-left: auto;
            margin-right: -12px
        }

        body.rtls .file-box, body.rtls ul.notes li {
            float: right
        }

        body.rtls .chat-statistic, body.rtls .chat-users {
            margin-right: -30px;
            margin-left: auto
        }

        body.rtls .dropdown-menu > li > a {
            text-align: right
        }

        body.rtls .b-r {
            border-left: 1px solid #e7eaec;
            border-right: none
        }

        body.rtls .dd-list .dd-list {
            padding-right: 30px;
            padding-left: 0
        }

        body.rtls .dd-item > button {
            float: right
        }

        body.rtls .skin-setttings {
            margin-right: 40px;
            margin-left: 0;
            direction: ltr
        }

        body.rtls .footer.fixed {
            margin-right: 220px;
            margin-left: 0
        }

        @media (max-width: 992px) {
            body.rtls .chat-statistic, body.rtls .chat-users {
                margin-right: 0
            }
        }

        body.body-small.mini-navbar .footer.fixed, body.rtls.mini-navbar .footer.fixed {
            margin: 0 70px 0 0
        }

        body.body-small.mini-navbar .footer.fixed, body.rtls.mini-navbar.fixed-sidebar .footer.fixed {
            margin: 0
        }

        body.rtls.top-navigation .navbar-toggle {
            float: right;
            margin-left: 15px;
            margin-right: 15px
        }

        .body-small.rtls.top-navigation .navbar-header {
            float: none
        }

        body.rtls.top-navigation #page-wrapper {
            margin: 0
        }

        body.rtls.mini-navbar #page-wrapper {
            margin: 0 70px 0 0
        }

        body.rtls.mini-navbar.fixed-sidebar #page-wrapper {
            margin: 0
        }

        body.rtls.body-small.fixed-sidebar.mini-navbar #page-wrapper {
            margin: 0 220px 0 0
        }

        body.rtls.body-small.fixed-sidebar.mini-navbar .navbar-static-side {
            width: 220px
        }

        .body-small.rtls .navbar-fixed-top {
            margin-right: 0
        }

        .body-small.rtls .navbar-header {
            float: right
        }

        body.rtls .navbar-top-links li:last-child {
            margin-left: 20px
        }

        body.rtls .top-navigation #page-wrapper, body.rtls .top-navigation .footer.fixed, body.rtls.mini-navbar .top-navigation #page-wrapper, body.rtls.mini-navbar.top-navigation #page-wrapper, body.rtls.top-navigation .footer.fixed {
            margin: 0
        }

        @media (max-width: 768px) {
            body.rtls .navbar-top-links li:last-child {
                margin-left: 20px
            }

            .body-small.rtls #page-wrapper {
                position: inherit;
                margin: 0;
                min-height: 1000px
            }

            .body-small.rtls .navbar-static-side {
                display: none;
                z-index: 2001;
                position: absolute;
                width: 70px
            }

            .body-small.rtls.mini-navbar .navbar-static-side {
                display: block
            }

            .rtls.fixed-sidebar.body-small .navbar-static-side {
                display: none;
                z-index: 2001;
                position: fixed;
                width: 220px
            }

            .rtls.fixed-sidebar.body-small.mini-navbar .navbar-static-side {
                display: block
            }
        }

        .rtls .ltr-support {
            direction: ltr
        }

        .skin-setttings .title {
            background: #efefef;
            text-align: center;
            text-transform: uppercase;
            font-weight: 600;
            display: block;
            padding: 10px 15px;
            font-size: 12px
        }

        .setings-item {
            padding: 10px 30px
        }

        .setings-item.nb {
            border: none
        }

        .setings-item.skin {
            text-align: center
        }

        .setings-item .switch {
            float: right
        }

        .skin-name a {
            text-transform: uppercase
        }

        .setings-item a {
            color: #fff
        }

        .blue-skin, .default-skin, .ultra-skin, .yellow-skin {
            text-align: center
        }

        .default-skin {
            font-weight: 600;
            background: #1ab394
        }

        .default-skin:hover {
            background: #199d82
        }

        .blue-skin {
            font-weight: 600;
            background: url(patterns/header-profile-skin-1.png) repeat scroll 0 0
        }

        .blue-skin:hover {
            background: #0d8ddb
        }

        .yellow-skin {
            font-weight: 600;
            background: url(patterns/header-profile-skin-3.png) repeat scroll 0 100%
        }

        .yellow-skin:hover {
            background: #ce8735
        }

        .content-tabs {
            border-bottom: solid 2px #2f4050
        }

        .page-tabs a {
            color: #999
        }

        .page-tabs a i {
            color: #ccc
        }

        .page-tabs a.active {
            background: #2f4050;
            color: #a7b1c2
        }

        .page-tabs a.active i:hover, .page-tabs a.active:hover {
            background: #293846;
            color: #fff
        }

        .skin-1 .minimalize-styl-2 {
            margin: 14px 5px 5px 30px
        }

        .skin-1 .navbar-top-links li:last-child {
            margin-right: 30px
        }

        .skin-1.fixed-nav .minimalize-styl-2 {
            margin: 14px 5px 5px 15px
        }

        .skin-1 .spin-icon {
            background: #0e9aef !important
        }

        .skin-1 .nav-header {
            background: #0e9aef;
            background: url(patterns/header-profile-skin-1.png)
        }

        .skin-1.mini-navbar .nav-second-level {
            background: #3e495f
        }

        .skin-1 .breadcrumb {
            background: 0 0
        }

        .skin-1 .page-heading {
            border: none
        }

        .skin-1 .nav > li.active {
            background: #3a4459
        }

        .skin-1 .nav > li > a {
            color: #9ea6b9
        }

        .skin-1 .nav > li.active > a {
            color: #fff
        }

        .skin-1 .navbar-minimalize {
            background: #0e9aef;
            border-color: #0e9aef
        }

        body.skin-1 {
            background: #3e495f
        }

        .skin-1 .navbar-static-top {
            background: #fff
        }

        .skin-1 .dashboard-header {
            background: 0 0;
            border-bottom: none !important;
            border-top: none;
            padding: 20px 30px 10px
        }

        .fixed-nav.skin-1 .navbar-fixed-top {
            background: #fff
        }

        .skin-1 .wrapper-content {
            padding: 30px 15px
        }

        .skin-1 #page-wrapper {
            background: #f4f6fa
        }

        .skin-1 .ibox-content, .skin-1 .ibox-title {
            border-width: 1px
        }

        .skin-1 .ibox-content:last-child {
            border-style: solid
        }

        .skin-1 .nav > li.active {
            border: none
        }

        .skin-1 .nav-header {
            padding: 35px 25px 25px
        }

        .skin-1 .nav-header a.dropdown-toggle {
            color: #fff;
            margin-top: 10px
        }

        .skin-1 .nav-header a.dropdown-toggle .text-muted {
            color: #fff;
            opacity: .8
        }

        .skin-1 .profile-element {
            text-align: center
        }

        .skin-1 .img-circle {
            border-radius: 5px
        }

        .skin-1 .navbar-default .nav > li > a:focus, .skin-1 .navbar-default .nav > li > a:hover {
            background: #39aef5;
            color: #fff
        }

        .skin-1 .nav.nav-tabs > li.active > a {
            color: #555
        }

        .skin-1 .content-tabs {
            border-bottom: solid 2px #39aef5
        }

        .skin-1 .nav.nav-tabs > li.active {
            background: 0 0
        }

        .skin-1 .page-tabs a.active {
            background: #39aef5;
            color: #fff
        }

        .skin-1 .page-tabs a.active i:hover, .skin-1 .page-tabs a.active:hover {
            background: #0e9aef;
            color: #fff
        }

        .skin-3 .minimalize-styl-2 {
            margin: 14px 5px 5px 30px
        }

        .skin-3 .navbar-top-links li:last-child {
            margin-right: 30px
        }

        .skin-3.fixed-nav .minimalize-styl-2 {
            margin: 14px 5px 5px 15px
        }

        .skin-3 .spin-icon {
            background: #ecba52 !important
        }

        body.boxed-layout.skin-3 #wrapper {
            background: #3e2c42
        }

        .skin-3 .nav-header {
            background: #ecba52;
            background: url(patterns/header-profile-skin-3.png)
        }

        .skin-3.mini-navbar .nav-second-level {
            background: #3e2c42
        }

        .skin-3 .breadcrumb {
            background: 0 0
        }

        .skin-3 .page-heading {
            border: none
        }

        .skin-3 .nav > li.active {
            background: #38283c
        }

        .fixed-nav.skin-3 .navbar-fixed-top {
            background: #fff
        }

        .skin-3 .nav > li > a {
            color: #948b96
        }

        .skin-3 .nav > li.active > a {
            color: #fff
        }

        .skin-3 .navbar-minimalize {
            background: #ecba52;
            border-color: #ecba52
        }

        body.skin-3 {
            background: #3e2c42
        }

        .skin-3 .navbar-static-top {
            background: #fff
        }

        .skin-3 .dashboard-header {
            background: 0 0;
            border-bottom: none !important;
            border-top: none;
            padding: 20px 30px 10px
        }

        .skin-3 .wrapper-content {
            padding: 30px 15px
        }

        .skin-3 #page-wrapper {
            background: #f4f6fa
        }

        .skin-3 .ibox-content, .skin-3 .ibox-title {
            border-width: 1px
        }

        .skin-3 .ibox-content:last-child {
            border-style: solid
        }

        .skin-3 .nav > li.active {
            border: none
        }

        .skin-3 .nav-header {
            padding: 35px 25px 25px
        }

        .skin-3 .nav-header a.dropdown-toggle {
            color: #fff;
            margin-top: 10px
        }

        .skin-3 .nav-header a.dropdown-toggle .text-muted {
            color: #fff;
            opacity: .8
        }

        .skin-3 .profile-element {
            text-align: center
        }

        .skin-3 .img-circle {
            border-radius: 5px
        }

        .skin-3 .navbar-default .nav > li > a:focus, .skin-3 .navbar-default .nav > li > a:hover {
            background: #38283c;
            color: #fff
        }

        .skin-3 .nav.nav-tabs > li.active > a {
            color: #555
        }

        .skin-3 .content-tabs {
            border-bottom: solid 2px #3e2c42
        }

        .skin-3 .nav.nav-tabs > li.active {
            background: 0 0
        }

        .skin-3 .page-tabs a.active {
            background: #3e2c42;
            color: #fff
        }

        .skin-3 .page-tabs a.active i:hover, .skin-3 .page-tabs a.active:hover {
            background: #38283c;
            color: #fff
        }

        @media (min-width: 768px) {
            .navbar-top-links .dropdown-alerts, .navbar-top-links .dropdown-messages, .navbar-top-links .dropdown-tasks {
                margin-left: auto
            }
        }

        @media (max-width: 768px) {
            body.fixed-sidebar .navbar-static-side {
                display: none
            }

            body.fixed-sidebar.mini-navbar .navbar-static-side {
                width: 70px
            }

            .lock-word, .navbar-form-custom {
                display: none
            }

            .navbar-header {
                display: inline;
                float: left
            }

            .sidebard-panel {
                z-index: 2;
                position: relative;
                width: auto;
                min-height: 100% !important
            }

            .sidebar-content .wrapper {
                padding-right: 0;
                z-index: 1
            }

            .fixed-sidebar.body-small .navbar-static-side {
                display: none;
                z-index: 2001;
                position: fixed;
                width: 220px
            }

            .fixed-sidebar.body-small.mini-navbar .navbar-static-side {
                display: block
            }

            .ibox-tools {
                float: none;
                text-align: right;
                display: block
            }

            .content-tabs {
                display: none
            }

            #content-main {
                height: calc(100% - 100px)
            }

            .fixed-nav #content-main {
                height: calc(100% - 38px)
            }
        }

        .navbar-static-side {
            background: #2f4050
        }

        .nav-close {
            padding: 10px;
            position: absolute;
            right: 5px;
            top: 5px;
            font-size: 1.4em;
            cursor: pointer;
            z-index: 10;
            display: none;
            color: rgba(255, 255, 255, .3)
        }

        @media (max-width: 350px) {
            body.fixed-sidebar.mini-navbar .navbar-static-side {
                width: 0
            }

            .nav-close {
                display: block
            }

            #page-wrapper {
                margin-left: 0 !important
            }

            .timeline-item .date {
                text-align: left;
                width: 110px;
                position: relative;
                padding-top: 30px
            }

            .timeline-item .date i {
                position: absolute;
                top: 0;
                left: 15px;
                padding: 5px;
                width: 30px;
                text-align: center;
                border: 1px solid #e7eaec;
                background: #f8f8f8
            }

            .timeline-item .content {
                border-left: none;
                border-top: 1px solid #e7eaec;
                padding-top: 10px;
                min-height: 100px
            }

            .nav.navbar-top-links li.dropdown {
                display: none
            }

            .ibox-tools {
                float: none;
                text-align: left;
                display: inline-block
            }
        }

        .ui-jqgrid-titlebar {
            height: 40px;
            line-height: 24px;
            color: #676a6c;
            background-color: #F9F9F9;
            text-shadow: 0 1px 0 rgba(255, 255, 255, .5)
        }

        .ui-jqgrid .ui-jqgrid-title {
            float: left;
            margin-left: 5px;
            font-weight: 700
        }

        .ui-jqgrid .ui-jqgrid-titlebar {
            position: relative;
            border-left: 0 solid;
            border-right: 0 solid;
            border-top: 0 solid
        }

        .social-feed-separated .social-feed-box {
            margin-left: 62px
        }

        .social-feed-separated .social-avatar {
            float: left;
            padding: 0
        }

        .social-feed-separated .social-avatar img {
            width: 52px;
            height: 52px;
            border: 1px solid #e7eaec
        }

        .social-feed-separated .social-feed-box .social-avatar {
            padding: 15px 15px 0;
            float: none
        }

        .social-feed-box {
            border: 1px solid #e7eaec;
            background: #fff;
            margin-bottom: 15px
        }

        .article .social-feed-box {
            margin-bottom: 0;
            border-bottom: none
        }

        .article .social-feed-box:last-child {
            margin-bottom: 0;
            border-bottom: 1px solid #e7eaec
        }

        .article .social-feed-box p {
            font-size: 13px;
            line-height: 18px
        }

        .social-action {
            margin: 15px
        }

        .social-avatar {
            padding: 15px 15px 0
        }

        .social-comment .social-comment {
            margin-left: 45px
        }

        .social-avatar img {
            height: 40px;
            width: 40px;
            margin-right: 10px
        }

        .social-avatar .media-body a {
            font-size: 14px;
            display: block
        }

        .social-body {
            padding: 15px
        }

        .social-body img {
            margin-bottom: 10px
        }

        .social-footer {
            border-top: 1px solid #e7eaec;
            padding: 10px 15px;
            background: #f9f9f9
        }

        .social-footer .social-comment img {
            width: 32px;
            margin-right: 10px
        }

        .social-comment:first-child {
            margin-top: 0
        }

        .social-comment {
            margin-top: 15px
        }

        .social-comment textarea {
            font-size: 12px
        }

        .checkbox input[type=checkbox], .checkbox-inline input[type=checkbox], .radio input[type=radio], .radio-inline input[type=radio] {
            margin-top: -4px
        }

        @media (max-width: 1000px) {
            .welcome-message {
                display: none
            }
        }

        .echarts {
            height: 240px
        }

        .checkbox-inline, .checkbox-inline + .checkbox-inline, .radio-inline, .radio-inline + .radio-inline {
            margin: 0 15px 0 0
        }

        .navbar-toggle {
            background-color: #fff
        }

        .J_menuTab {
            -webkit-transition: all .3s ease-out 0s;
            transition: all .3s ease-out 0s
        }

        ::-webkit-scrollbar-track {
            background-color: #F5F5F5
        }

        ::-webkit-scrollbar {
            width: 6px;
            background-color: #F5F5F5
        }

        ::-webkit-scrollbar-thumb {
            background-color: #999
        }

        .gohome {
            position: fixed;
            top: 20px;
            right: 20px;
            z-index: 100
        }

        .gohome a {
            height: 38px;
            width: 38px;
            display: block;
            background: #2f4050;
            padding: 9px 8px;
            text-align: center;
            color: #fff;
            border-radius: 50%;
            opacity: .5
        }

        .gohome a:hover {
            opacity: 1
        }

        @media only screen and (-webkit-min-device-pixel-ratio: 2) {
            #content-main {
                -webkit-overflow-scrolling: touch;
            }
        }

        .navbar-header {
            width: 60%
        }

        .bs-glyphicons {
            margin: 0 -10px 20px;
            overflow: hidden
        }

        .bs-glyphicons-list {
            padding-left: 0;
            list-style: none
        }

        .bs-glyphicons li {
            float: left;
            width: 25%;
            height: 115px;
            padding: 10px;
            font-size: 10px;
            line-height: 1.4;
            text-align: center;
            background-color: #f9f9f9;
            border: 1px solid #fff
        }

        .bs-glyphicons .glyphicon {
            margin-top: 5px;
            margin-bottom: 10px;
            font-size: 24px
        }

        .bs-glyphicons .glyphicon-class {
            display: block;
            text-align: center;
            word-wrap: break-word
        }

        .bs-glyphicons li:hover {
            color: #fff;
            background-color: #1ab394
        }

        @media (min-width: 768px) {
            .bs-glyphicons {
                margin-right: 0;
                margin-left: 0
            }

            .bs-glyphicons li {
                width: 12.5%;
                font-size: 12px
            }
        }
    </style>
</head>
<body class="gray-bg">
<div class="row dashboard-header" style="margin-left: 20px;margin-right: 20px;background-color: #1ab394">
    <div class="col-sm-12 text-center">
        <span style="color: #ffffff; font-size: 30px; font-weight: 700">测试报告</span>
    </div>
</div>
<div class="wrapper wrapper-content animated fadeInRight" style="padding-top: 10px; padding-bottom: 0px">
    <div class="row">
        <div class="col-sm-12">
            <div class="ibox float-e-margins" style="margin-bottom: 0px">
                <div class="ibox-title">
                    <h5>报告汇总</h5>
                    <div class="ibox-tools">
                        <a class="collapse-link">
                            <i class="fa fa-chevron-up"></i>
                        </a>
                        <a class="close-link">
                            <i class="fa fa-times"></i>
                        </a>
                    </div>
                </div>
                <div class="ibox-content">
                    <div class="row">
                        <div class="col-sm-6 b-r" style="height:350px">
                            <form class="form-horizontal">
                                <div class="form-group">
                                    <label class="col-sm-2 control-label text-navy">用例名称:</label>
                                    <div class="col-sm-5">
                                        <span class="form-control" id="testName"></span>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label class="col-sm-2 control-label text-navy">用例总数:</label>
                                    <div class="col-sm-5">
                                        <span class="form-control" id="testAll"></span>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label class="col-sm-2 control-label text-navy">用例通过:</label>
                                    <div class="col-sm-5">
                                        <span class="form-control" id="testPass"></span>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label class="col-sm-2 control-label text-danger">用例失败:</label>
                                    <div class="col-sm-5">
                                        <span class="form-control text-danger" id="testFail"></span>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label class="col-sm-2 control-label text-warning">用例跳过:</label>
                                    <div class="col-sm-5">
                                        <span class="form-control text-warning" id="testSkip"></span>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label class="col-sm-2 control-label text-navy">开始时间:</label>
                                    <div class="col-sm-5">
                                        <span class="form-control" id="beginTime"></span>
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label class="col-sm-2 control-label text-navy">运行时间:</label>
                                    <div class="col-sm-5">
                                        <span class="form-control" id="totalTime"></span>
                                    </div>
                                </div>
                            </form>
                        </div>
                        <div class="col-sm-6">
                            <div style="height:350px" id="echarts-map-chart"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<div class="wrapper wrapper-content animated fadeInRight" style="padding-top: 10px; padding-bottom: 0px">
    <div class="row">
        <div class="col-sm-12">
            <div class="ibox float-e-margins">
                <div class="ibox-title">
                    <h5>详细数据</h5>
                    <div class="ibox-tools">
                        <a class="collapse-link">
                            <i class="fa fa-chevron-up"></i>
                        </a>
                        <a class="close-link">
                            <i class="fa fa-times"></i>
                        </a>
                    </div>
                </div>
                <div class="ibox-content">
                    <div class="input-group panel-heading" style="width: 100%; background-color: #1ab394; margin-bottom: 10px; text-align: left; font-family: Consolas;">
                        <label style="color: snow">测试类:</label>
                        <select class="chosen-select form-control" data-placeholder="----------" style="width: 300px;" name="filterClass" id="filterClass">
                            <option value="">----------</option>
                        </select>
                        <label style="color: snow">结果:</label>
                        <select class="chosen-select form-control" data-placeholder="----------" style="width: 300px;" name="filterResult" id="filterResult">
                            <option value="">----------</option>
                        </select>
                        <div style="float: right">
                            <label class="form-control">
                                <span class="text-navy">用例数: </span><span class="text-navy b-r" id="filterAll"></span><span> | </span>
                                <span style="color: green">成功: </span><span style="color: green" id="filterOk"></span><span> | </span>
                                <span class="text-danger">失败: </span><span class="text-danger" id="filterFail"></span><span> | </span>
                                <span class="text-warning">跳过: </span><span class="text-warning" id="filterSkip"></span>
                            </label>
                        </div>
                    </div>
                    <table class="table table-bordered">
                        <thead>
                        <tr>
                            <th>编号</th><th>测试类</th><th>测试方法</th><th>用例描述</th><th>耗时</th><th>结果</th><th>操作</th>
                        </tr>
                        </thead>
                        <tbody id="detailBody">
                        </tbody>
                    </table>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="https://cdn.bootcss.com/jquery/2.1.4/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="https://cdn.bootcss.com/echarts/3.8.5/echarts.min.js"></script>
<script src="https://cdn.bootcss.com/chosen/1.8.2/chosen.jquery.js"></script>
<script type="text/javascript">
	function $childNode(o) {
	    return window.frames[o]
	}
	function animationHover(o, e) {
	    o = $(o), o.hover(function () {
	        o.addClass("animated " + e)
	    }, function () {
	        window.setTimeout(function () {
	            o.removeClass("animated " + e)
	        }, 2e3)
	    })
	}
	function WinMove() {
	    var o = "[class*=col]", e = ".ibox-title", i = "[class*=col]";
	    $(o).sortable({
	        handle: e,
	        connectWith: i,
	        tolerance: "pointer",
	        forcePlaceholderSize: !0,
	        opacity: .8
	    }).disableSelection()
	}
	var $parentNode = window.parent.document;
	if ($(".tooltip-demo").tooltip({
	        selector: "[data-toggle=tooltip]",
	        container: "body"
	    }), $(".modal").appendTo("body"), $("[data-toggle=popover]").popover(), $(".collapse-link").click(function () {
	        var o = $(this).closest("div.ibox"), e = $(this).find("i"), i = o.find("div.ibox-content");
	        i.slideToggle(200), e.toggleClass("fa-chevron-up").toggleClass("fa-chevron-down"), o.toggleClass("").toggleClass("border-bottom"), setTimeout(function () {
	            o.resize(), o.find("[id^=map-]").resize()
	        }, 50)
	    }), $(".close-link").click(function () {
	        var o = $(this).closest("div.ibox");
	        o.remove()
	    }), top == this) {
	}
</script>
<script type="text/javascript">
    var resultData = ${resultData};

    function clickRow(obj){
        $("#detailBody").children("tr").attr("style","font-family: Consolas");
        $(obj).attr("style","font-family: Consolas; background-color: #b0d877");
    }

    function details(obj) {
        if ($(obj).text() == '展开') {
            var len = $(obj).parent().parent().children().length;
            var detailLog = "";
            var logs = resultData["testResult"][parseInt($(obj).attr("buttonIndex"))]["log"];
            $(obj).text("收缩");
            $(obj).removeClass("btn-primary");
            $(obj).addClass("btn-danger");
            $.each(logs, function (i, n) {
                detailLog = detailLog + "<p>" + n + "</p>";
            });
            $(obj).parent().parent().after("<tr><td colspan='" + len + "'><div style='font-family: Consolas;font-size:12px;overflow-x:auto;'>" + detailLog + "</div></td></tr>");
        } else if ($(obj).text() == '收缩') {
            $(obj).parent().parent().next().remove();
            $(obj).text("展开");
            $(obj).removeClass("btn-danger");
            $(obj).addClass("btn-primary");
        }

    }
    $(function () {
        $("#testName").text(resultData["testName"]);
        $("#testPass").text(resultData["testPass"]);
        $("#testFail").text(resultData["testFail"]);
        $("#testSkip").text(resultData["testSkip"]);
        $("#testAll").text(resultData["testAll"]);
        $("#beginTime").text(resultData["beginTime"]);
        $("#totalTime").text(resultData["totalTime"]);
        $("#filterAll").text(resultData["testAll"]);
        $("#filterOk").text(resultData["testPass"]);
        $("#filterFail").text(resultData["testFail"]);
        $("#filterSkip").text(resultData["testSkip"]);
        var classNames = [];
        var results = [];
        $.each(resultData["testResult"], function (i, n) {
            if (classNames.indexOf(n["className"]) == -1) {
                classNames.push(n["className"]);
            }
            if (results.indexOf(n["status"]) == -1) {
                results.push(n["status"]);
            }
        });

        $.each(classNames, function (i, n) {
            $("#filterClass").append("<option value='" + n + "' hassubinfo='true'>" + n + "</option>");
        });
        $.each(results, function (i, n) {
            $("#filterResult").append("<option value='" + n + "' hassubinfo='true'>" + n + "</option>");
        });

        $("#filterClass").chosen({search_contains: true});
        $("#filterResult").chosen({search_contains: true});

        function generateResult(className, caseResult) {
            $("#detailBody").children().remove();
            var filterAll = 0;
            var filterOk = 0;
            var filterFail = 0;
            var filterSkip = 0;
            $.each(resultData["testResult"], function (i, n) {
                if ((className == "" || n["className"] == className) && (caseResult == "" || n["status"] == caseResult)) {
                    filterAll += 1;
                    var status = "";
                    if (n["status"] == '成功') {
                        filterOk += 1;
                        status = "<td><span class='text-navy'>成功</span></td>";
                    } else if (n["status"] == '失败') {
                        filterFail += 1;
                        status = "<td><span class='text-danger'>失败</span></td>";
                    } else if (n["status"] == '跳过') {
                        filterSkip += 1;
                        status = "<td><span class='text-warning'>跳过</span></td>";
                    } else {
                        status = "<td><span>" + n["status"] + "</span></td>";
                    }
                    var tr = "<tr style='font-family: Consolas'>" +
                        "<td>" + (i + 1) + "</td>" +
                        "<td>" + n["className"] + "</td>" +
                        "<td>" + n["methodName"] + "</td>" +
                        "<td>" + n["description"] + "</td>" +
                        "<td>" + n["spendTime"] + "</td>" +
                        status + "<td><button type='button' οnclick='details(this)' buttonIndex='" + i + "' class='btn btn-primary btn-xs' style='margin-bottom: 0px'>展开</button></td></tr>"
                    $("#detailBody").append(tr);
                }
            });
            $("#filterAll").text(filterAll);
            $("#filterOk").text(filterOk);
            $("#filterFail").text(filterFail);
            $("#filterSkip").text(filterSkip);
        }

        generateResult("", "");

        $("#filterClass").on('change', function () {
            var className = $("#filterClass").val();
            var caseResult = $("#filterResult").val();
            generateResult(className, caseResult);
        });

        $("#filterResult").on('change', function () {
            var className = $("#filterClass").val();
            var caseResult = $("#filterResult").val();
            generateResult(className, caseResult);
        });

        //$(".chosen-select").trigger("chosen:updated");

        function pie() {
            var option = {
                title: {
                    text: '测试用例运行结果',
                    subtext: '',
                    x: 'center'
                },
                tooltip: {
                    trigger: 'item',
                    formatter: "{a} <br/>{b} : {c} ({d}%)"
                },
                legend: {
                    orient: 'vertical',
                    left: 'left',
                    data: ['失败', '跳过', '成功']
                },
                series: [
                    {
                        name: '运行结果',
                        type: 'pie',
                        radius: '55%',
                        center: ['50%', '60%'],
                        data: [
                            {value: resultData["testFail"], name: '失败'},
                            {value: resultData["testSkip"], name: '跳过'},
                            {value: resultData["testPass"], name: '成功'}
                        ],
                        itemStyle: {
                            emphasis: {
                                shadowBlur: 10,
                                shadowOffsetX: 0,
                                shadowColor: 'rgba(0, 0, 0, 0.5)'
                            }
                        }
                    }
                ]
            };
            var chart = echarts.init(document.getElementById("echarts-map-chart"));
            chart.setOption(option);
        }

        pie();
    });

</script>
</body>
</html>

不勾选"使用默认报告", 直接运行
testng+reportng进行单元测试并生成好看的报告文章来源地址https://www.toymoban.com/news/detail-465175.html

到了这里,关于testng+reportng进行单元测试并生成好看的报告的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jenkins+maven+testng+htmlreport单元自动化测试

    为了可以在jenkins自动化运行单元测试的代码,所以使用maven+testng的技术结合,达到手动或者定时去执行单元测试的代码,以便提高人工运行的自动化的效率。单元通过该方案也可以套用在httpclient框架去执行测试web api接口的自动化测试,原理是一致的。 安装开发工具:eclip

    2024年02月10日
    浏览(53)
  • python代码实现判断三角形类型,使用pytest进行代码测试,生成allure测试报告

    一、python代码判断三角形类型 写代码之前首先我们要知道满足三角形的条件: 前提条件:三角形边长都为大于0的数字 构成三角形:两边之和大于第三边 即 a+b c  and a+cb and  b+ca   (此三个条件需要同时满足) 满足构成三角形之后,要考虑构成三角形的类型: 三角形分为:

    2024年02月05日
    浏览(49)
  • 解决mvn clean install遇到testng单元测试失败时打包也失败的问题

    看这个之前请先看这个 Jenkins执行Testng 比如我现在就有一个单元测试失败的项目 执行mvn clean install的时候就会报错 下面是我现在的pom.xml 但我们不希望这样,怎么办 新增上面这个配置,即可 再次执行mvn clean install,就算失败了也没问题,照样打包成功 如果要集成jenkins,再加

    2024年02月13日
    浏览(39)
  • 测试人进阶技能:单元测试报告应用指南

    为什么需要单元测试 从产品角度而言,常规的功能测试、系统测试都是站在产品局部或全局功能进行测试,能够很好地与用户的需要相结合,但是缺乏了对产品研发细节(特别是代码细节的理解)。 从测试人员角度而言,功能测试和系统测试以及其他性能测试等等对测试人

    2024年02月13日
    浏览(37)
  • 软件质量保证与测试技术实验报告(四)——JUnit单元测试

    1.实验名称——JUnit单元测试 2.实验目的 (1)利用Junit进行单元测试,理解单元测试的任务、同时理解这类测试工具的实现原理; (2)理解断言的基本概念和断言测试方法; 3.实验内容 题目1:完成课件中Score_List的单元测试。 题目2:这是一个简单的计算器类——Computer,能

    2023年04月23日
    浏览(51)
  • gitlab_ci.yml展示单元测试报告 (FREE)

    CI/CD 流水线通常包含验证您的代码的测试作业。 如果测试失败,流水线将失败并通知用户。处理合并请求的人必须检查作业日志并查看测试失败的地方,以便可以修复它们。 您可以将作业配置为使用单元测试报告,极狐GitLab 会显示有关合并请求的报告,以便更轻松、更快速

    2024年02月11日
    浏览(38)
  • Jmeter 快速生成测试报告

    我们使用Jmeter工具进行接口测试或性能测试后一般是通过察看结果数、聚合报告等监听器来查看响应结果。如果要跟领导汇报测试结果,无法直接通过监听器的结果来进行展示和汇报,因为太low了,因此测试完成后去整理一个数据齐全且美观的报告是非常有必要的。 首先要保

    2024年02月12日
    浏览(36)
  • 【Jmeter生成测试报告】

    Jmeter提供了两种创建测试报告的方式:GUI 和CLI。 GUI 模式下,性能测试结果会存在误差,因为 GUI 本身就会消耗一部分资源,所以不建议使用GUI生成测试报告;功能测试下,通常只查看结果树,运行是否正确,然后就把脚本抛到集成工具上了,也不会使用GUI生成测试报告。

    2024年02月04日
    浏览(33)
  • jmeter 生成测试报告

    如果要给领导汇报测试结果,无法直接通过监听器的结果来进行展示和汇报,因为太low了,因此测试完成后去整理一个数据齐全且美观的报告是非常有必要的。 一、jmeter配置         首先要保证jmeter命令是ok的,如果你在cmd中输入jmeter -v,有出现如下截图所示的信息,那就说

    2024年02月06日
    浏览(34)
  • 使用Postman做接口测试并生成接口测试报告

    1、录制脚本或使用手写url进行抓包 2、微信api接口(可录制可手写) 3、添加多 个标签,获取多个标签,编辑多个标签,删除多个标签!!!(csv格式) 4、通过cli命令行方式执行脚本并生成报告 一 、添加标签 1、首先进入微信公众号开放测试端口,复制url到postman,用post请

    2023年04月08日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包