diff --git a/README.md b/README.md index a73f3be33..8a270f4fa 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,48 @@ -[English](README.md) - -

logo OpenData - open data project management

- -[![Build Status](https://drone.gitea.io/api/badges/go-gitea/gitea/status.svg)](https://drone.gitea.io/go-gitea/gitea) -[![Join the Discord chat at https://discord.gg/Gitea](https://img.shields.io/discord/322538954119184384.svg)](https://discord.gg/Gitea) -[![](https://images.microbadger.com/badges/image/gitea/gitea.svg)](https://microbadger.com/images/gitea/gitea "Get your own image badge on microbadger.com") -[![codecov](https://codecov.io/gh/go-gitea/gitea/branch/master/graph/badge.svg)](https://codecov.io/gh/go-gitea/gitea) -[![GoDoc](https://godoc.org/code.gitea.io/gitea?status.svg)](https://godoc.org/code.gitea.io/gitea) -[![GitHub release](https://img.shields.io/github/release/go-gitea/gitea.svg)](https://github.com/go-gitea/gitea/releases/latest) -[![Help Contribute to Open Source](https://www.codetriage.com/go-gitea/gitea/badges/users.svg)](https://www.codetriage.com/go-gitea/gitea) -[![Become a backer/sponsor of gitea](https://opencollective.com/gitea/tiers/backers/badge.svg?label=backers&color=brightgreen)](https://opencollective.com/gitea) + + +

logoAiForge - 启智AI开发协作平台

+ +[![release](https://img.shields.io/badge/release-V1.21.8-blue)](https://git.openi.org.cn/OpenI/aiforge/releases/latest) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) -[![Crowdin](https://badges.crowdin.net/gitea/localized.svg)](https://crowdin.com/project/gitea) -## 目标 -OpenData 的首要目标是提供对开源数据的大存储支持和管理,旨在为国家开源项目的建设贡献力量。为软件行业中的开源项目的发展提供助力。 +## AiForge + +启智AI开发协作平台是一个在线Web应用,旨在为人工智能算法、模型开发提供在线协同工作环境,它提供了代码托管、数据集管理与共享、免费云端算力资源支持(GPU/NPU)、共享镜像等功能。 + +[启智AI开发协作平台](https://git.openi.org.cn) 是使用本项目构建的在线服务,您可以直接点击链接访问试用。 + +本项目是基于[Gitea](https://github.com/go-gitea/gitea)发展而来的,我们对其进行了Fork并基于此扩展了人工智能开发中需要的功能,如数据集管理和模型训练等。对于和代码托管相关的功能,您可以参考[Gitea的文档](https://docs.gitea.io/zh-cn/)。 + +### 系统总体架构 +下图展示了系统总体架构,本项目分为Web前端和服务后端,Web页面面向算法开发者、应用开发者、科研工作者、学生等用户群体,通过统一的Web页面入口,使用系统提供的系统服务。 + +后端服务涵盖了AI模型开发流水线,包括代码协同开发、数据管理、模型调试、训练、推理和部署等(*目前尚未支持模型部署*)。在不同的开发阶段,我们还将提供丰富的开发工具供用户使用,如数据标注、数据筛选、模型转换、模型压缩、代码检测等。我们也欢迎社区提供更多丰富的工具接入,提高利用平台进行开发的效率。 +![系统架构图](assets/架构图.png) +## 在线服务使用 +本项目的在线服务平台的详细使用帮助文档,可参阅本项目[百科](https://git.openi.org.cn/OpenI/aiforge/wiki)内容。 +- 如何创建账号 +- 如何创建组织及管理成员权限 +- 如何创建项目仓库 +- 如何使用数据集功能 +- 如何使用计算资源进行模型调试和训练 +- 使用小技巧 +- 常见问题(FAQ) +## 安装 +您也可以基于本项目代码,在本地环境安装部署服务。 +### 数据库准备 +[数据库准备说明](https://docs.gitea.io/zh-cn/database-prep/) +### 从源代码安装 +- node版本 >= v10.13.0 +- golang版本 >= 1.13.3 + +[从源代码安装说明](https://docs.gitea.io/zh-cn/install-from-source/) -## 我们所提供的 +## 授权许可 +本项目采用 MIT 开源授权许可证,完整的授权说明已放置在 [LICENSE](https://git.openi.org.cn/OpenI/aiforge/src/branch/develop/LICENSE) 文件中。 -- 项目管理 -- git代码管理 -- 大数据集存储管理,最高单个数据集限制为1TB -- 初期为社区项目免费提供30PB的算力,后续根据使用情况逐步增加 \ No newline at end of file +## 需要帮助? +如果您在使用或者开发过程中遇到问题,可以在以下渠道咨询: + - 点击[这里](https://git.openi.org.cn/OpenI/aiforge/issues)在线提交问题(点击页面右上角绿色按钮**创建任务**) + - 加入微信群实时交流,获得进一步的支持 + diff --git a/assets/OPENI平台系统架构图.jpg b/assets/OPENI平台系统架构图.jpg new file mode 100755 index 000000000..e2e2e3449 Binary files /dev/null and b/assets/OPENI平台系统架构图.jpg differ diff --git a/assets/架构图.png b/assets/架构图.png new file mode 100644 index 000000000..d03a01a4d Binary files /dev/null and b/assets/架构图.png differ diff --git a/models/attachment.go b/models/attachment.go index 47589a8dd..4f2c8d09a 100755 --- a/models/attachment.go +++ b/models/attachment.go @@ -6,11 +6,12 @@ package models import ( "bytes" - "code.gitea.io/gitea/modules/log" "fmt" "io" "path" + "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/obs" "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/storage" api "code.gitea.io/gitea/modules/structs" @@ -253,9 +254,33 @@ func DeleteAttachments(attachments []*Attachment, remove bool) (int, error) { if remove { for i, a := range attachments { - if err := storage.Attachments.Delete(a.RelativePath()); err != nil { - return i, err + if a.Type == TypeCloudBrainOne { + if err := storage.Attachments.Delete(a.RelativePath()); err != nil { + return i, err + } } + if a.Type == TypeCloudBrainTwo { + input := &obs.DeleteObjectInput{} + input.Bucket = setting.Bucket + input.Key = setting.BasePath + path.Join(a.UUID[0:1], a.UUID[1:2], a.UUID, a.Name) + log.Info("delete obs file:" + input.Key) + output, err := storage.ObsCli.DeleteObject(input) + if err == nil { + log.Info("RequestId:%s\n", output.RequestId) + } else if obsError, ok := err.(obs.ObsError); ok { + log.Info("Code:%s\n", obsError.Code) + log.Info("Message:%s\n", obsError.Message) + } + } + + //rf := path.Join(a.UUID[0:1], a.UUID[1:2]) + /* + files, err := repo.GetDatasetDirs(a.UUID, "") + if err != nil { + log.Info("No files in attachment dirs.") + } + log.Info("files=" + files) + */ } } return int(cnt), nil diff --git a/models/blockchain.go b/models/blockchain.go index 00a47969f..484222557 100755 --- a/models/blockchain.go +++ b/models/blockchain.go @@ -91,6 +91,7 @@ func GetBlockChainUnSuccessCommits() ([]*BlockChain, error) { blockChains := make([]*BlockChain, 0, 10) return blockChains, x. Where("status != ?", BlockChainCommitSuccess). + Limit(100). Find(&blockChains) } diff --git a/models/custom_migrations.go b/models/custom_migrations.go new file mode 100644 index 000000000..b196c5a8b --- /dev/null +++ b/models/custom_migrations.go @@ -0,0 +1,36 @@ +package models + +import ( + "code.gitea.io/gitea/modules/log" + "xorm.io/xorm" +) + +type CustomMigration struct { + Description string + Migrate func(*xorm.Engine) error +} + +var customMigrations = []CustomMigration{ + {"Custom v1 Topic struct change to support chinese", syncTopicStruct}, +} + +func MigrateCustom(x *xorm.Engine) { + + for _, m := range customMigrations { + log.Info("Migration: %s", m.Description) + if err := m.Migrate(x); err != nil { + + log.Error("Migration: %v", err) + + } + } + +} + +func syncTopicStruct(x *xorm.Engine) error { + + query := "ALTER TABLE topic ALTER COLUMN name TYPE varchar(105);" + + _, err := x.Exec(query) + return err +} diff --git a/models/file_chunk.go b/models/file_chunk.go index fc2beef56..b849f0108 100755 --- a/models/file_chunk.go +++ b/models/file_chunk.go @@ -1,6 +1,9 @@ package models import ( + "fmt" + + "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/timeutil" "xorm.io/xorm" ) @@ -87,6 +90,27 @@ func InsertFileChunk(fileChunk *FileChunk) (_ *FileChunk, err error) { return fileChunk, nil } +func DeleteFileChunkById(uuid string) (*FileChunk, error) { + return deleteFileChunkById(x, uuid) +} + +func deleteFileChunkById(e Engine, uuid string) (*FileChunk, error) { + fileChunk := new(FileChunk) + if has, err := e.Where("uuid = ?", uuid).Get(fileChunk); err != nil { + return nil, err + } else if !has { + return nil, ErrFileChunkNotExist{"", uuid} + } + + err := deleteFileChunk(e, fileChunk) + log.Info("delete the filechunk,id=" + fmt.Sprint(fileChunk.ID)) + if err != nil { + return nil, err + } else { + return fileChunk, nil + } +} + // UpdateFileChunk updates the given file_chunk in database func UpdateFileChunk(fileChunk *FileChunk) error { return updateFileChunk(x, fileChunk) diff --git a/models/models.go b/models/models.go index 0e06c60b3..2fab3d0dc 100755 --- a/models/models.go +++ b/models/models.go @@ -129,6 +129,7 @@ func init() { new(Cloudbrain), new(FileChunk), new(BlockChain), + new(RecommendOrg), ) gonicNames := []string{"SSL", "UID"} @@ -185,6 +186,8 @@ func SetEngine() (err error) { x.SetMaxOpenConns(setting.Database.MaxOpenConns) x.SetMaxIdleConns(setting.Database.MaxIdleConns) x.SetConnMaxLifetime(setting.Database.ConnMaxLifetime) + x.Sync2(tables...) + MigrateCustom(x) return nil } diff --git a/models/recommend_org.go b/models/recommend_org.go new file mode 100755 index 000000000..6632f9aed --- /dev/null +++ b/models/recommend_org.go @@ -0,0 +1,65 @@ +package models + +import ( + "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/timeutil" +) + +type RecommendOrg struct { + ID int64 `xorm:"pk autoincr"` + Order int64 `xorm:"INDEX NOT NULL unique"` + OrgID int64 `xorm:"INDEX NOT NULL unique"` + CreatedUnix timeutil.TimeStamp `xorm:"created"` +} + +type RecommendOrgInfo struct { + RecommendOrg `xorm:"extends"` + User `xorm:"extends"` +} + +type RecommendOrgList []*RecommendOrg +type RecommendOrgInfoList []*RecommendOrgInfo + +func getRecommendOrgs(e Engine) (RecommendOrgList, error) { + orgs := make(RecommendOrgList, 0, 10) + err := e.Asc("order"). + Find(&orgs) + return orgs, err +} + +func GetRecommendOrgs() (RecommendOrgList, error) { + return getRecommendOrgs(x) +} + +func getRecommendOrgInfos(e Engine) (RecommendOrgInfoList, error) { + orgs := make(RecommendOrgInfoList, 0, 10) + if err := e.Table(&RecommendOrg{}).Join("INNER", "`user`", "`user`.id = `recommend_org`.org_id"). + OrderBy("recommend_org.order").Find(&orgs); err != nil { + return orgs, err + } + return orgs, nil +} + +func GetRecommendOrgInfos() (RecommendOrgInfoList, error) { + return getRecommendOrgInfos(x) +} + +func delRecommendOrgs(e Engine) error { + sql := "delete from recommend_org" + _, err := e.Exec(sql) + return err +} + +func UpdateRecommendOrgs(orgs RecommendOrgList) error { + if err := delRecommendOrgs(x); err != nil { + log.Error("delRecommendOrgs failed:%v", err.Error()) + return err + } + + if _, err := x.Insert(&orgs); err != nil { + log.Error("Insert failed:%v", err.Error()) + return err + } + + return nil +} diff --git a/models/repo.go b/models/repo.go index be84a462e..2742c3e31 100755 --- a/models/repo.go +++ b/models/repo.go @@ -175,6 +175,7 @@ type Repository struct { NumMilestones int `xorm:"NOT NULL DEFAULT 0"` NumClosedMilestones int `xorm:"NOT NULL DEFAULT 0"` NumOpenMilestones int `xorm:"-"` + NumCommit int64 `xorm:"NOT NULL DEFAULT 0"` IsPrivate bool `xorm:"INDEX"` IsEmpty bool `xorm:"INDEX"` @@ -213,6 +214,9 @@ type Repository struct { CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"` + + Hot int64 `xorm:"-"` + Active int64 `xorm:"-"` } // SanitizedOriginalURL returns a sanitized OriginalURL @@ -1411,6 +1415,15 @@ func GetRepositoriesByForkID(forkID int64) ([]*Repository, error) { return getRepositoriesByForkID(x, forkID) } +func getALLRepositories(e Engine) ([]*Repository, error) { + repos := make([]*Repository, 0, 1000) + return repos, e.Find(&repos) +} + +func GetAllRepositories() ([]*Repository, error) { + return getALLRepositories(x) +} + func updateRepository(e Engine, repo *Repository, visibilityChanged bool) (err error) { repo.LowerName = strings.ToLower(repo.Name) @@ -2413,6 +2426,7 @@ func updateRepositoryCols(e Engine, repo *Repository, cols ...string) error { } // UpdateRepositoryCols updates repository's columns +// Notice: it will update the updated_unix automatically, be careful to use this func UpdateRepositoryCols(repo *Repository, cols ...string) error { return updateRepositoryCols(x, repo, cols...) } @@ -2421,6 +2435,7 @@ func GetBlockChainUnSuccessRepos() ([]*Repository, error) { repos := make([]*Repository, 0, 10) return repos, x. Where("block_chain_status != ?", RepoBlockChainSuccess). + Limit(100). Find(&repos) } @@ -2441,3 +2456,11 @@ func (repo *Repository) IncreaseCloneCnt() { return } + +func UpdateRepositoryCommitNum(repo *Repository) error { + if _,err := x.Exec("UPDATE `repository` SET num_commit = ? where id = ?", repo.NumCommit, repo.ID); err != nil { + return err + } + + return nil +} diff --git a/models/repo_list.go b/models/repo_list.go index cbc67da54..57b6ebbd6 100755 --- a/models/repo_list.go +++ b/models/repo_list.go @@ -198,6 +198,8 @@ const ( SearchOrderByForks SearchOrderBy = "num_forks ASC" SearchOrderByForksReverse SearchOrderBy = "num_forks DESC" SearchOrderByDownloadTimes SearchOrderBy = "download_times DESC" + SearchOrderByHot SearchOrderBy = "(num_watches + num_stars + num_forks + clone_cnt) DESC" + SearchOrderByActive SearchOrderBy = "(num_issues + num_pulls + num_commit) DESC" ) // SearchRepositoryCondition creates a query condition according search repository options diff --git a/models/topic.go b/models/topic.go index 4a5bffa08..b8d3d9d85 100644 --- a/models/topic.go +++ b/models/topic.go @@ -8,6 +8,7 @@ import ( "fmt" "regexp" "strings" + "unicode/utf8" "code.gitea.io/gitea/modules/timeutil" @@ -21,12 +22,12 @@ func init() { ) } -var topicPattern = regexp.MustCompile(`^[a-z0-9][a-z0-9-]*$`) +var topicPattern = regexp.MustCompile(`^[\x{4e00}-\x{9fa5}a-z0-9][\x{4e00}-\x{9fa5}a-z0-9-]*$`) // Topic represents a topic of repositories type Topic struct { ID int64 - Name string `xorm:"UNIQUE VARCHAR(25)"` + Name string `xorm:"UNIQUE VARCHAR(105)"` RepoCount int CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"` @@ -56,7 +57,7 @@ func (err ErrTopicNotExist) Error() string { // ValidateTopic checks a topic by length and match pattern rules func ValidateTopic(topic string) bool { - return len(topic) <= 35 && topicPattern.MatchString(topic) + return utf8.RuneCountInString(topic) <= 35 && topicPattern.MatchString(topic) } // SanitizeAndValidateTopics sanitizes and checks an array or topics diff --git a/models/user.go b/models/user.go index 42e688358..83bf1b2c0 100755 --- a/models/user.go +++ b/models/user.go @@ -2047,6 +2047,7 @@ func GetBlockChainUnSuccessUsers() ([]*User, error) { users := make([]*User, 0, 10) err := x.Where("public_key = ''"). Or("private_key = ''"). + Limit(100). Find(&users) return users, err } diff --git a/modules/auth/modelarts.go b/modules/auth/modelarts.go index 11a3bc562..0be3e3882 100755 --- a/modules/auth/modelarts.go +++ b/modules/auth/modelarts.go @@ -7,7 +7,7 @@ import ( type CreateModelArtsForm struct { JobName string `form:"job_name" binding:"Required"` - Attachment string `form:"attachment" binding:"Required"` + Attachment string `form:"attachment"` Description string `form:"description"` } diff --git a/modules/context/auth.go b/modules/context/auth.go index 6aee002b5..3f53e6fce 100755 --- a/modules/context/auth.go +++ b/modules/context/auth.go @@ -26,6 +26,7 @@ type ToggleOptions struct { AdminRequired bool DisableCSRF bool BasicAuthRequired bool + OperationRequired bool } // Toggle returns toggle options as middleware @@ -142,6 +143,15 @@ func Toggle(options *ToggleOptions) macaron.Handler { return } } + + if options.OperationRequired { + //todo: add isOperator judgement + if !ctx.User.IsAdmin { + ctx.Error(403) + return + } + ctx.Data["PageIsOperation"] = true + } } } diff --git a/modules/labelmsg/label_redis_service.go b/modules/labelmsg/label_redis_service.go new file mode 100644 index 000000000..0d91646eb --- /dev/null +++ b/modules/labelmsg/label_redis_service.go @@ -0,0 +1,27 @@ +package labelmsg + +import ( + "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/setting" + redigo "github.com/gomodule/redigo/redis" +) + +var pool *redigo.Pool + +func Init() { + redisBroker := setting.Broker + pool_size := 20 + log.Info("start to connect redis.") + pool = redigo.NewPool(func() (redigo.Conn, error) { + c, err := redigo.DialURL(redisBroker) + if err != nil { + return nil, err + } + return c, nil + }, pool_size) + +} + +func Get() redigo.Conn { + return pool.Get() +} diff --git a/modules/labelmsg/redismsgsender.go b/modules/labelmsg/redismsgsender.go new file mode 100644 index 000000000..8b2eae772 --- /dev/null +++ b/modules/labelmsg/redismsgsender.go @@ -0,0 +1,57 @@ +package labelmsg + +import ( + "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/setting" +) + +// 方法名 + +func SendAddAttachToLabelSys(attach string) error { + + redisclient := Get() + + //记得销毁本次链连接 + defer redisclient.Close() + + _, err := redisclient.Do("Publish", setting.LabelTaskName, attach) + if err != nil { + log.Critical("redis Publish failed.") + } + + log.Info("LabelRedisQueue(%s) success", attach) + + return nil +} + +func SendDeleteAttachToLabelSys(attach string) error { + + redisclient := Get() + + //记得销毁本次链连接 + defer redisclient.Close() + + _, err := redisclient.Do("Publish", setting.LabelDatasetDeleteQueue, attach) + if err != nil { + log.Critical("redis Publish failed.") + } + + log.Info("LabelDatasetDeleteQueue(%s) success", attach) + + return nil +} + +func SendDecompressAttachToLabelOBS(attach string) error { + + redisclient := Get() + //记得销毁本次链连接 + defer redisclient.Close() + + _, err := redisclient.Do("Publish", setting.DecompressOBSTaskName, attach) + if err != nil { + log.Critical("redis Publish failed.") + } + + log.Info("LabelDecompressOBSQueue(%s) success", attach) + return nil +} diff --git a/modules/modelarts/modelarts.go b/modules/modelarts/modelarts.go index a5cb8388b..edd9d5d6b 100755 --- a/modules/modelarts/modelarts.go +++ b/modules/modelarts/modelarts.go @@ -1,13 +1,13 @@ package modelarts import ( - "code.gitea.io/gitea/modules/setting" - "encoding/json" - "path" - "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/context" "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/setting" + "code.gitea.io/gitea/modules/storage" + "encoding/json" + "path" ) const ( @@ -25,7 +25,27 @@ var ( ) func GenerateTask(ctx *context.Context, jobName, uuid, description string) error { - dataActualPath := setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + "/" + var dataActualPath string + if uuid != "" { + dataActualPath = setting.Bucket + "/" + setting.BasePath + path.Join(uuid[0:1], uuid[1:2]) + "/" + uuid + "/" + } else { + userPath := setting.UserBasePath + ctx.User.Name + "/" + isExist, err := storage.ObsHasObject(userPath) + if err != nil { + log.Error("ObsHasObject failed:%v", err.Error(), ctx.Data["MsgID"]) + return err + } + + if !isExist { + if err = storage.ObsCreateObject(userPath); err != nil { + log.Error("ObsCreateObject failed:%v", err.Error(), ctx.Data["MsgID"]) + return err + } + } + + dataActualPath = setting.Bucket + "/" + userPath + } + if poolInfos == nil { json.Unmarshal([]byte(setting.PoolInfos), &poolInfos) } diff --git a/modules/setting/setting.go b/modules/setting/setting.go index 142369f88..0fbc9f909 100755 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -431,6 +431,11 @@ var ( AuthUser string AuthPassword string + //labelsystem config + LabelTaskName string + LabelDatasetDeleteQueue string + DecompressOBSTaskName string + //cloudbrain config CBAuthUser string CBAuthPassword string @@ -463,7 +468,7 @@ var ( Bucket string Location string BasePath string - //RealPath string + UserBasePath string //modelarts config ModelArtsHost string @@ -473,10 +478,10 @@ var ( ModelArtsUsername string ModelArtsPassword string ModelArtsDomain string - ProfileID string - PoolInfos string - Flavor string - FlavorInfos string + ProfileID string + PoolInfos string + Flavor string + FlavorInfos string ) // DateLang transforms standard language locale name to corresponding value in datetime plugin. @@ -1145,6 +1150,11 @@ func NewContext() { AuthUser = sec.Key("USER").MustString("cW4cMtH24eoWPE7X") AuthPassword = sec.Key("PASSWORD").MustString("4BPmgvK2hb2Eywwyp4YZRY4B7yQf4DAC") + sec = Cfg.Section("labelsystem") + LabelTaskName = sec.Key("LabelTaskName").MustString("LabelRedisQueue") + LabelDatasetDeleteQueue = sec.Key("LabelDatasetDeleteQueue").MustString("LabelDatasetDeleteQueue") + DecompressOBSTaskName = sec.Key("DecompressOBSTaskName").MustString("LabelDecompressOBSQueue") + sec = Cfg.Section("cloudbrain") CBAuthUser = sec.Key("USER").MustString("cW4cMtH24eoWPE7X") CBAuthPassword = sec.Key("PWD").MustString("4BPmgvK2hb2Eywwyp4YZRY4B7yQf4DAC") @@ -1177,6 +1187,7 @@ func NewContext() { Bucket = sec.Key("BUCKET").MustString("testopendata") Location = sec.Key("LOCATION").MustString("cn-south-222") BasePath = sec.Key("BASE_PATH").MustString("attachment/") + UserBasePath = sec.Key("BASE_PATH_USER").MustString("users/") sec = Cfg.Section("modelarts") ModelArtsHost = sec.Key("ENDPOINT").MustString("112.95.163.80") diff --git a/modules/storage/obs.go b/modules/storage/obs.go index b4de303cf..77fe49b4e 100755 --- a/modules/storage/obs.go +++ b/modules/storage/obs.go @@ -143,3 +143,17 @@ func ObsGetPreSignedUrl(uuid, fileName string) (string, error) { return output.SignedUrl, nil } + +func ObsCreateObject(path string) error { + input := &obs.PutObjectInput{} + input.Bucket = setting.Bucket + input.Key = path + + _, err := ObsCli.PutObject(input) + if err != nil { + log.Error("PutObject failed:", err.Error()) + return err + } + + return nil +} diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 61a233589..50e85ba27 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -647,7 +647,8 @@ public = public dir = directory back = back copy_url=copy download url -directory=check directory of the datasets +directory=preview of the datasets +create_label_task=create label task visibility = visibility visibility_description = Only the owner or the organization members if they have rights, will be able to see it. visibility_helper = Make Dataset Private @@ -1815,7 +1816,7 @@ branch.included = Included topic.manage_topics = Manage Topics topic.done = Done topic.count_prompt = You can not select more than 25 topics -topic.format_prompt = Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long. +topic.format_prompt = Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long. [org] org_name_holder = Organization Name diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini index 89db6536c..89a6282e5 100755 --- a/options/locale/locale_zh-CN.ini +++ b/options/locale/locale_zh-CN.ini @@ -335,7 +335,7 @@ SSPIDefaultLanguage=默认语言 require_error=不能为空。 alpha_dash_error=应该只包含字母数字、破折号 ('-') 和下划线 ('_') 字符。 -alpha_dash_dot_error=' 应该只包含字母数字, 破折号 ('-'), 下划线 ('_') 和点 ('. ') 。 +alpha_dash_dot_error=应该只包含字母数字, 破折号 ('-'), 下划线 ('_') 和点 ('. ') 。 git_ref_name_error=` 必须是格式良好的 git 引用名称。` size_error=长度必须为 %s。 min_size_error=长度最小为 %s 个字符。 @@ -649,7 +649,8 @@ dir=目录 back=返回 copy_url=复制下载链接 copy_md5=复制文件MD5 -directory=查看数据集目录结构 +directory=数据集预览 +create_label_task=创建标注任务 visibility=可见性 visibility_description=只有组织所有人或拥有权利的组织成员才能看到。 visibility_helper=将数据集设为私有 @@ -1817,7 +1818,7 @@ branch.included=已包含 topic.manage_topics=管理主题 topic.done=保存 topic.count_prompt=您最多选择25个主题 -topic.format_prompt=主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符 +topic.format_prompt=主题必须以中文、字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符 [org] org_name_holder=组织名称 diff --git a/public/img/loading.png b/public/img/loading.png index c5ba3d9cd..ba7ae058e 100644 Binary files a/public/img/loading.png and b/public/img/loading.png differ diff --git a/public/img/org-baai@2x-80.jpg b/public/img/org-baai@2x-80.jpg new file mode 100644 index 000000000..91d4aa144 Binary files /dev/null and b/public/img/org-baai@2x-80.jpg differ diff --git a/public/img/org-engineclub@2x-80.jpg b/public/img/org-engineclub@2x-80.jpg new file mode 100644 index 000000000..3561a6ef3 Binary files /dev/null and b/public/img/org-engineclub@2x-80.jpg differ diff --git a/public/img/org-modelzoo@2x-80.jpg b/public/img/org-modelzoo@2x-80.jpg new file mode 100644 index 000000000..b9b731c11 Binary files /dev/null and b/public/img/org-modelzoo@2x-80.jpg differ diff --git a/public/img/org-openi@2x-80.jpg b/public/img/org-openi@2x-80.jpg new file mode 100644 index 000000000..6022f01f9 Binary files /dev/null and b/public/img/org-openi@2x-80.jpg differ diff --git a/public/img/org-platform@2x-80.jpg b/public/img/org-platform@2x-80.jpg new file mode 100644 index 000000000..db1c0d457 Binary files /dev/null and b/public/img/org-platform@2x-80.jpg differ diff --git a/public/img/org-tensorlayer@2x-80.jpg b/public/img/org-tensorlayer@2x-80.jpg new file mode 100644 index 000000000..5b842ccb5 Binary files /dev/null and b/public/img/org-tensorlayer@2x-80.jpg differ diff --git a/public/self/css/bootstrap.min.css b/public/self/css/bootstrap.min.css new file mode 100644 index 000000000..c547283bb --- /dev/null +++ b/public/self/css/bootstrap.min.css @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.0.3 (http://getbootstrap.com) + * Copyright 2013 Twitter, Inc. + * Licensed under http://www.apache.org/licenses/LICENSE-2.0 + */ + +/*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a{background:transparent}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{margin:.67em 0;font-size:2em}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}mark{color:#000;background:#ff0}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-family:inherit;font-size:100%}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{padding:0;box-sizing:border-box}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;height:auto;max-width:100%}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h1 small,h2 small,h3 small,h1 .small,h2 .small,h3 .small{font-size:65%}h4,h5,h6{margin-top:10px;margin-bottom:10px}h4 small,h5 small,h6 small,h4 .small,h5 .small,h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4}@media(min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-primary:hover{color:#3071a9}.text-warning{color:#8a6d3b}.text-warning:hover{color:#66512c}.text-danger{color:#a94442}.text-danger:hover{color:#843534}.text-success{color:#3c763d}.text-success:hover{color:#2b542c}.text-info{color:#31708f}.text-info:hover{color:#245269}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.list-inline>li:first-child{padding-left:0}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}@media(min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small,blockquote .small{display:block;line-height:1.428571429;color:#999}blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small,blockquote.pull-right .small{text-align:right}blockquote.pull-right small:before,blockquote.pull-right .small:before{content:''}blockquote.pull-right small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}blockquote:before,blockquote:after{content:""}address{margin-bottom:20px;font-style:normal;line-height:1.428571429}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}@media(min-width:768px){.container{width:750px}}@media(min-width:992px){.container{width:970px}}@media(min-width:1200px){.container{width:1170px}}.row{margin-right:-15px;margin-left:-15px}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666666666666%}.col-xs-10{width:83.33333333333334%}.col-xs-9{width:75%}.col-xs-8{width:66.66666666666666%}.col-xs-7{width:58.333333333333336%}.col-xs-6{width:50%}.col-xs-5{width:41.66666666666667%}.col-xs-4{width:33.33333333333333%}.col-xs-3{width:25%}.col-xs-2{width:16.666666666666664%}.col-xs-1{width:8.333333333333332%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666666666666%}.col-xs-pull-10{right:83.33333333333334%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666666666666%}.col-xs-pull-7{right:58.333333333333336%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666666666667%}.col-xs-pull-4{right:33.33333333333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.666666666666664%}.col-xs-pull-1{right:8.333333333333332%}.col-xs-pull-0{right:0}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666666666666%}.col-xs-push-10{left:83.33333333333334%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666666666666%}.col-xs-push-7{left:58.333333333333336%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666666666667%}.col-xs-push-4{left:33.33333333333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.666666666666664%}.col-xs-push-1{left:8.333333333333332%}.col-xs-push-0{left:0}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666666666666%}.col-xs-offset-10{margin-left:83.33333333333334%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666666666666%}.col-xs-offset-7{margin-left:58.333333333333336%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666666666667%}.col-xs-offset-4{margin-left:33.33333333333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.666666666666664%}.col-xs-offset-1{margin-left:8.333333333333332%}.col-xs-offset-0{margin-left:0}@media(min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666666666666%}.col-sm-10{width:83.33333333333334%}.col-sm-9{width:75%}.col-sm-8{width:66.66666666666666%}.col-sm-7{width:58.333333333333336%}.col-sm-6{width:50%}.col-sm-5{width:41.66666666666667%}.col-sm-4{width:33.33333333333333%}.col-sm-3{width:25%}.col-sm-2{width:16.666666666666664%}.col-sm-1{width:8.333333333333332%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-0{right:0}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666666666666%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-0{left:0}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666666666666%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-0{margin-left:0}}@media(min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666666666666%}.col-md-10{width:83.33333333333334%}.col-md-9{width:75%}.col-md-8{width:66.66666666666666%}.col-md-7{width:58.333333333333336%}.col-md-6{width:50%}.col-md-5{width:41.66666666666667%}.col-md-4{width:33.33333333333333%}.col-md-3{width:25%}.col-md-2{width:16.666666666666664%}.col-md-1{width:8.333333333333332%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666666666666%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-0{right:0}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666666666666%}.col-md-push-10{left:83.33333333333334%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666666666666%}.col-md-push-7{left:58.333333333333336%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666666666667%}.col-md-push-4{left:33.33333333333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.666666666666664%}.col-md-push-1{left:8.333333333333332%}.col-md-push-0{left:0}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666666666666%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-0{margin-left:0}}@media(min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666666666666%}.col-lg-10{width:83.33333333333334%}.col-lg-9{width:75%}.col-lg-8{width:66.66666666666666%}.col-lg-7{width:58.333333333333336%}.col-lg-6{width:50%}.col-lg-5{width:41.66666666666667%}.col-lg-4{width:33.33333333333333%}.col-lg-3{width:25%}.col-lg-2{width:16.666666666666664%}.col-lg-1{width:8.333333333333332%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-0{right:0}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666666666666%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-0{left:0}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666666666666%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-0{margin-left:0}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{position:static;display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{display:table-cell;float:none}.table>thead>tr>.active,.table>tbody>tr>.active,.table>tfoot>tr>.active,.table>thead>.active>td,.table>tbody>.active>td,.table>tfoot>.active>td,.table>thead>.active>th,.table>tbody>.active>th,.table>tfoot>.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>.active:hover,.table-hover>tbody>.active:hover>td,.table-hover>tbody>.active:hover>th{background-color:#e8e8e8}.table>thead>tr>.success,.table>tbody>tr>.success,.table>tfoot>tr>.success,.table>thead>.success>td,.table>tbody>.success>td,.table>tfoot>.success>td,.table>thead>.success>th,.table>tbody>.success>th,.table>tfoot>.success>th{background-color:#dff0d8}.table-hover>tbody>tr>.success:hover,.table-hover>tbody>.success:hover>td,.table-hover>tbody>.success:hover>th{background-color:#d0e9c6}.table>thead>tr>.danger,.table>tbody>tr>.danger,.table>tfoot>tr>.danger,.table>thead>.danger>td,.table>tbody>.danger>td,.table>tfoot>.danger>td,.table>thead>.danger>th,.table>tbody>.danger>th,.table>tfoot>.danger>th{background-color:#f2dede}.table-hover>tbody>tr>.danger:hover,.table-hover>tbody>.danger:hover>td,.table-hover>tbody>.danger:hover>th{background-color:#ebcccc}.table>thead>tr>.warning,.table>tbody>tr>.warning,.table>tfoot>tr>.warning,.table>thead>.warning>td,.table>tbody>.warning>td,.table>tfoot>.warning>td,.table>thead>.warning>th,.table>tbody>.warning>th,.table>tfoot>.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>.warning:hover,.table-hover>tbody>.warning:hover>td,.table-hover>tbody>.warning:hover>th{background-color:#faf2cc}@media(max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd;-ms-overflow-style:-ms-autohiding-scrollbar;-webkit-overflow-scrolling:touch}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}output{display:block;padding-top:7px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:46px;line-height:46px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.form-control-static{margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media(min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline select.form-control{width:auto}.form-inline .radio,.form-inline .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-control-static{padding-top:7px}@media(min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;background-image:none;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#fff}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-link{font-weight:normal;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;line-height:1;-moz-osx-font-smoothing:grayscale}.glyphicon:empty{width:1em}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media(min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-right:0;padding-left:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn:first-child>.btn{margin-right:-1px}.input-group-btn:last-child>.btn{margin-left:-1px}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media(min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media(min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media(min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media(min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}@media(min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}@media(min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media(min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media(min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media(min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media(min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media(min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media(min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media(max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media(min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}.navbar-nav.navbar-right:last-child{margin-right:-15px}}@media(min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media(min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form select.form-control{width:auto}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media(max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media(min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-form.navbar-right:last-child{margin-right:-15px}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media(min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.navbar-text.navbar-right:last-child{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media(max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media(max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img,.thumbnail a>img{display:block;height:auto;max-width:100%;margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#428bca}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}a.list-group-item.active .list-group-item-heading,a.list-group-item.active:hover .list-group-item-heading,a.list-group-item.active:focus .list-group-item-heading{color:inherit}a.list-group-item.active .list-group-item-text,a.list-group-item.active:hover .list-group-item-text,a.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive{border-top:1px solid #ddd}.panel>.table>tbody:first-child th,.panel>.table>tbody:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:last-child>th,.panel>.table-responsive>.table-bordered>thead>tr:last-child>th,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th,.panel>.table-bordered>thead>tr:last-child>td,.panel>.table-responsive>.table-bordered>thead>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#faebcc}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#ebccd1}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ebccd1}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{position:relative;z-index:1050;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;height:auto;max-width:100%;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);opacity:.5;filter:alpha(opacity=50)}.carousel-control.left{background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.5) 0),color-stop(rgba(0,0,0,0.0001) 100%));background-image:linear-gradient(to right,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.0001) 0),color-stop(rgba(0,0,0,0.5) 100%));background-image:linear-gradient(to right,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;outline:0;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicons-chevron-left,.carousel-control .glyphicons-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{display:table;content:" "}.clearfix:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,tr.visible-xs,th.visible-xs,td.visible-xs{display:none!important}@media(max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}table.visible-xs.visible-sm{display:table}tr.visible-xs.visible-sm{display:table-row!important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}table.visible-xs.visible-md{display:table}tr.visible-xs.visible-md{display:table-row!important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-xs.visible-lg{display:block!important}table.visible-xs.visible-lg{display:table}tr.visible-xs.visible-lg{display:table-row!important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell!important}}.visible-sm,tr.visible-sm,th.visible-sm,td.visible-sm{display:none!important}@media(max-width:767px){.visible-sm.visible-xs{display:block!important}table.visible-sm.visible-xs{display:table}tr.visible-sm.visible-xs{display:table-row!important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}table.visible-sm.visible-md{display:table}tr.visible-sm.visible-md{display:table-row!important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-sm.visible-lg{display:block!important}table.visible-sm.visible-lg{display:table}tr.visible-sm.visible-lg{display:table-row!important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell!important}}.visible-md,tr.visible-md,th.visible-md,td.visible-md{display:none!important}@media(max-width:767px){.visible-md.visible-xs{display:block!important}table.visible-md.visible-xs{display:table}tr.visible-md.visible-xs{display:table-row!important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}table.visible-md.visible-sm{display:table}tr.visible-md.visible-sm{display:table-row!important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-md.visible-lg{display:block!important}table.visible-md.visible-lg{display:table}tr.visible-md.visible-lg{display:table-row!important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell!important}}.visible-lg,tr.visible-lg,th.visible-lg,td.visible-lg{display:none!important}@media(max-width:767px){.visible-lg.visible-xs{display:block!important}table.visible-lg.visible-xs{display:table}tr.visible-lg.visible-xs{display:table-row!important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}table.visible-lg.visible-sm{display:table}tr.visible-lg.visible-sm{display:table-row!important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}table.visible-lg.visible-md{display:table}tr.visible-lg.visible-md{display:table-row!important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}table.hidden-xs{display:table}tr.hidden-xs{display:table-row!important}th.hidden-xs,td.hidden-xs{display:table-cell!important}@media(max-width:767px){.hidden-xs,tr.hidden-xs,th.hidden-xs,td.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm,tr.hidden-xs.hidden-sm,th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md,tr.hidden-xs.hidden-md,th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-xs.hidden-lg,tr.hidden-xs.hidden-lg,th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}table.hidden-sm{display:table}tr.hidden-sm{display:table-row!important}th.hidden-sm,td.hidden-sm{display:table-cell!important}@media(max-width:767px){.hidden-sm.hidden-xs,tr.hidden-sm.hidden-xs,th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-sm,tr.hidden-sm,th.hidden-sm,td.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md,tr.hidden-sm.hidden-md,th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-sm.hidden-lg,tr.hidden-sm.hidden-lg,th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}table.hidden-md{display:table}tr.hidden-md{display:table-row!important}th.hidden-md,td.hidden-md{display:table-cell!important}@media(max-width:767px){.hidden-md.hidden-xs,tr.hidden-md.hidden-xs,th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-md.hidden-sm,tr.hidden-md.hidden-sm,th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-md,tr.hidden-md,th.hidden-md,td.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-md.hidden-lg,tr.hidden-md.hidden-lg,th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}table.hidden-lg{display:table}tr.hidden-lg{display:table-row!important}th.hidden-lg,td.hidden-lg{display:table-cell!important}@media(max-width:767px){.hidden-lg.hidden-xs,tr.hidden-lg.hidden-xs,th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm,tr.hidden-lg.hidden-sm,th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md,tr.hidden-lg.hidden-md,th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-lg,tr.hidden-lg,th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print,tr.visible-print,th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}.hidden-print,tr.hidden-print,th.hidden-print,td.hidden-print{display:none!important}} \ No newline at end of file diff --git a/public/self/css/font-awesome.min.css b/public/self/css/font-awesome.min.css new file mode 100644 index 000000000..540440ce8 --- /dev/null +++ b/public/self/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/public/self/css/ionicons.min.css b/public/self/css/ionicons.min.css new file mode 100644 index 000000000..444760494 --- /dev/null +++ b/public/self/css/ionicons.min.css @@ -0,0 +1,6 @@ +/*! + Ionicons, v1.4.0 + Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ + https://twitter.com/helloimben https://twitter.com/ionicframework + MIT License: https://github.com/driftyco/ionicons +*/@font-face{font-family:"Ionicons";src:url("../fonts/ionicons.eot?v=1.4.0");src:url("../fonts/ionicons.eot?v=1.4.0#iefix") format("embedded-opentype"),url("../fonts/ionicons.ttf?v=1.4.0") format("truetype"),url("../fonts/ionicons.woff?v=1.4.0") format("woff"),url("../fonts/ionicons.svg?v=1.4.0#Ionicons") format("svg");font-weight:normal;font-style:normal}.ion,.ion-loading-a,.ion-loading-b,.ion-loading-c,.ion-loading-d,.ion-looping,.ion-refreshing,.ion-ios7-reloading,.ionicons,.ion-alert,.ion-alert-circled,.ion-android-add,.ion-android-add-contact,.ion-android-alarm,.ion-android-archive,.ion-android-arrow-back,.ion-android-arrow-down-left,.ion-android-arrow-down-right,.ion-android-arrow-up-left,.ion-android-arrow-up-right,.ion-android-battery,.ion-android-book,.ion-android-calendar,.ion-android-call,.ion-android-camera,.ion-android-chat,.ion-android-checkmark,.ion-android-clock,.ion-android-close,.ion-android-contact,.ion-android-contacts,.ion-android-data,.ion-android-developer,.ion-android-display,.ion-android-download,.ion-android-dropdown,.ion-android-earth,.ion-android-folder,.ion-android-forums,.ion-android-friends,.ion-android-hand,.ion-android-image,.ion-android-inbox,.ion-android-information,.ion-android-keypad,.ion-android-lightbulb,.ion-android-locate,.ion-android-location,.ion-android-mail,.ion-android-microphone,.ion-android-mixer,.ion-android-more,.ion-android-note,.ion-android-playstore,.ion-android-printer,.ion-android-promotion,.ion-android-reminder,.ion-android-remove,.ion-android-search,.ion-android-send,.ion-android-settings,.ion-android-share,.ion-android-social,.ion-android-social-user,.ion-android-sort,.ion-android-star,.ion-android-stopwatch,.ion-android-storage,.ion-android-system-back,.ion-android-system-home,.ion-android-system-windows,.ion-android-timer,.ion-android-trash,.ion-android-volume,.ion-android-wifi,.ion-archive,.ion-arrow-down-a,.ion-arrow-down-b,.ion-arrow-down-c,.ion-arrow-expand,.ion-arrow-graph-down-left,.ion-arrow-graph-down-right,.ion-arrow-graph-up-left,.ion-arrow-graph-up-right,.ion-arrow-left-a,.ion-arrow-left-b,.ion-arrow-left-c,.ion-arrow-move,.ion-arrow-resize,.ion-arrow-return-left,.ion-arrow-return-right,.ion-arrow-right-a,.ion-arrow-right-b,.ion-arrow-right-c,.ion-arrow-shrink,.ion-arrow-swap,.ion-arrow-up-a,.ion-arrow-up-b,.ion-arrow-up-c,.ion-at,.ion-bag,.ion-battery-charging,.ion-battery-empty,.ion-battery-full,.ion-battery-half,.ion-battery-low,.ion-beaker,.ion-beer,.ion-bluetooth,.ion-bookmark,.ion-briefcase,.ion-bug,.ion-calculator,.ion-calendar,.ion-camera,.ion-card,.ion-chatbox,.ion-chatbox-working,.ion-chatboxes,.ion-chatbubble,.ion-chatbubble-working,.ion-chatbubbles,.ion-checkmark,.ion-checkmark-circled,.ion-checkmark-round,.ion-chevron-down,.ion-chevron-left,.ion-chevron-right,.ion-chevron-up,.ion-clipboard,.ion-clock,.ion-close,.ion-close-circled,.ion-close-round,.ion-cloud,.ion-code,.ion-code-download,.ion-code-working,.ion-coffee,.ion-compass,.ion-compose,.ion-connection-bars,.ion-contrast,.ion-disc,.ion-document,.ion-document-text,.ion-drag,.ion-earth,.ion-edit,.ion-egg,.ion-eject,.ion-email,.ion-eye,.ion-eye-disabled,.ion-female,.ion-filing,.ion-film-marker,.ion-flag,.ion-flash,.ion-flash-off,.ion-flask,.ion-folder,.ion-fork,.ion-fork-repo,.ion-forward,.ion-game-controller-a,.ion-game-controller-b,.ion-gear-a,.ion-gear-b,.ion-grid,.ion-hammer,.ion-headphone,.ion-heart,.ion-help,.ion-help-buoy,.ion-help-circled,.ion-home,.ion-icecream,.ion-icon-social-google-plus,.ion-icon-social-google-plus-outline,.ion-image,.ion-images,.ion-information,.ion-information-circled,.ion-ionic,.ion-ios7-alarm,.ion-ios7-alarm-outline,.ion-ios7-albums,.ion-ios7-albums-outline,.ion-ios7-arrow-back,.ion-ios7-arrow-down,.ion-ios7-arrow-forward,.ion-ios7-arrow-left,.ion-ios7-arrow-right,.ion-ios7-arrow-thin-down,.ion-ios7-arrow-thin-left,.ion-ios7-arrow-thin-right,.ion-ios7-arrow-thin-up,.ion-ios7-arrow-up,.ion-ios7-at,.ion-ios7-at-outline,.ion-ios7-bell,.ion-ios7-bell-outline,.ion-ios7-bolt,.ion-ios7-bolt-outline,.ion-ios7-bookmarks,.ion-ios7-bookmarks-outline,.ion-ios7-box,.ion-ios7-box-outline,.ion-ios7-briefcase,.ion-ios7-briefcase-outline,.ion-ios7-browsers,.ion-ios7-browsers-outline,.ion-ios7-calculator,.ion-ios7-calculator-outline,.ion-ios7-calendar,.ion-ios7-calendar-outline,.ion-ios7-camera,.ion-ios7-camera-outline,.ion-ios7-cart,.ion-ios7-cart-outline,.ion-ios7-chatboxes,.ion-ios7-chatboxes-outline,.ion-ios7-chatbubble,.ion-ios7-chatbubble-outline,.ion-ios7-checkmark,.ion-ios7-checkmark-empty,.ion-ios7-checkmark-outline,.ion-ios7-circle-filled,.ion-ios7-circle-outline,.ion-ios7-clock,.ion-ios7-clock-outline,.ion-ios7-close,.ion-ios7-close-empty,.ion-ios7-close-outline,.ion-ios7-cloud,.ion-ios7-cloud-download,.ion-ios7-cloud-download-outline,.ion-ios7-cloud-outline,.ion-ios7-cloud-upload,.ion-ios7-cloud-upload-outline,.ion-ios7-cloudy,.ion-ios7-cloudy-night,.ion-ios7-cloudy-night-outline,.ion-ios7-cloudy-outline,.ion-ios7-cog,.ion-ios7-cog-outline,.ion-ios7-compose,.ion-ios7-compose-outline,.ion-ios7-contact,.ion-ios7-contact-outline,.ion-ios7-copy,.ion-ios7-copy-outline,.ion-ios7-download,.ion-ios7-download-outline,.ion-ios7-drag,.ion-ios7-email,.ion-ios7-email-outline,.ion-ios7-eye,.ion-ios7-eye-outline,.ion-ios7-fastforward,.ion-ios7-fastforward-outline,.ion-ios7-filing,.ion-ios7-filing-outline,.ion-ios7-film,.ion-ios7-film-outline,.ion-ios7-flag,.ion-ios7-flag-outline,.ion-ios7-folder,.ion-ios7-folder-outline,.ion-ios7-gear,.ion-ios7-gear-outline,.ion-ios7-glasses,.ion-ios7-glasses-outline,.ion-ios7-heart,.ion-ios7-heart-outline,.ion-ios7-help,.ion-ios7-help-empty,.ion-ios7-help-outline,.ion-ios7-infinite,.ion-ios7-infinite-outline,.ion-ios7-information,.ion-ios7-information-empty,.ion-ios7-information-outline,.ion-ios7-ionic-outline,.ion-ios7-keypad,.ion-ios7-keypad-outline,.ion-ios7-lightbulb,.ion-ios7-lightbulb-outline,.ion-ios7-location,.ion-ios7-location-outline,.ion-ios7-locked,.ion-ios7-locked-outline,.ion-ios7-medkit,.ion-ios7-medkit-outline,.ion-ios7-mic,.ion-ios7-mic-off,.ion-ios7-mic-outline,.ion-ios7-minus,.ion-ios7-minus-empty,.ion-ios7-minus-outline,.ion-ios7-monitor,.ion-ios7-monitor-outline,.ion-ios7-moon,.ion-ios7-moon-outline,.ion-ios7-more,.ion-ios7-more-outline,.ion-ios7-musical-note,.ion-ios7-musical-notes,.ion-ios7-navigate,.ion-ios7-navigate-outline,.ion-ios7-paperplane,.ion-ios7-paperplane-outline,.ion-ios7-partlysunny,.ion-ios7-partlysunny-outline,.ion-ios7-pause,.ion-ios7-pause-outline,.ion-ios7-people,.ion-ios7-people-outline,.ion-ios7-person,.ion-ios7-person-outline,.ion-ios7-personadd,.ion-ios7-personadd-outline,.ion-ios7-photos,.ion-ios7-photos-outline,.ion-ios7-pie,.ion-ios7-pie-outline,.ion-ios7-play,.ion-ios7-play-outline,.ion-ios7-plus,.ion-ios7-plus-empty,.ion-ios7-plus-outline,.ion-ios7-pricetag,.ion-ios7-pricetag-outline,.ion-ios7-printer,.ion-ios7-printer-outline,.ion-ios7-rainy,.ion-ios7-rainy-outline,.ion-ios7-recording,.ion-ios7-recording-outline,.ion-ios7-redo,.ion-ios7-redo-outline,.ion-ios7-refresh,.ion-ios7-refresh-empty,.ion-ios7-refresh-outline,.ion-ios7-reload,.ion-ios7-rewind,.ion-ios7-rewind-outline,.ion-ios7-search,.ion-ios7-search-strong,.ion-ios7-skipbackward,.ion-ios7-skipbackward-outline,.ion-ios7-skipforward,.ion-ios7-skipforward-outline,.ion-ios7-snowy,.ion-ios7-speedometer,.ion-ios7-speedometer-outline,.ion-ios7-star,.ion-ios7-star-outline,.ion-ios7-stopwatch,.ion-ios7-stopwatch-outline,.ion-ios7-sunny,.ion-ios7-sunny-outline,.ion-ios7-telephone,.ion-ios7-telephone-outline,.ion-ios7-thunderstorm,.ion-ios7-thunderstorm-outline,.ion-ios7-time,.ion-ios7-time-outline,.ion-ios7-timer,.ion-ios7-timer-outline,.ion-ios7-trash,.ion-ios7-trash-outline,.ion-ios7-undo,.ion-ios7-undo-outline,.ion-ios7-unlocked,.ion-ios7-unlocked-outline,.ion-ios7-upload,.ion-ios7-upload-outline,.ion-ios7-videocam,.ion-ios7-videocam-outline,.ion-ios7-volume-high,.ion-ios7-volume-low,.ion-ios7-wineglass,.ion-ios7-wineglass-outline,.ion-ios7-world,.ion-ios7-world-outline,.ion-ipad,.ion-iphone,.ion-ipod,.ion-jet,.ion-key,.ion-knife,.ion-laptop,.ion-leaf,.ion-levels,.ion-lightbulb,.ion-link,.ion-load-a,.ion-load-b,.ion-load-c,.ion-load-d,.ion-location,.ion-locked,.ion-log-in,.ion-log-out,.ion-loop,.ion-magnet,.ion-male,.ion-man,.ion-map,.ion-medkit,.ion-mic-a,.ion-mic-b,.ion-mic-c,.ion-minus,.ion-minus-circled,.ion-minus-round,.ion-model-s,.ion-monitor,.ion-more,.ion-music-note,.ion-navicon,.ion-navicon-round,.ion-navigate,.ion-no-smoking,.ion-nuclear,.ion-paper-airplane,.ion-paperclip,.ion-pause,.ion-person,.ion-person-add,.ion-person-stalker,.ion-pie-graph,.ion-pin,.ion-pinpoint,.ion-pizza,.ion-plane,.ion-play,.ion-playstation,.ion-plus,.ion-plus-circled,.ion-plus-round,.ion-pound,.ion-power,.ion-pricetag,.ion-pricetags,.ion-printer,.ion-radio-waves,.ion-record,.ion-refresh,.ion-reply,.ion-reply-all,.ion-search,.ion-settings,.ion-share,.ion-shuffle,.ion-skip-backward,.ion-skip-forward,.ion-social-android,.ion-social-android-outline,.ion-social-apple,.ion-social-apple-outline,.ion-social-bitcoin,.ion-social-bitcoin-outline,.ion-social-buffer,.ion-social-buffer-outline,.ion-social-designernews,.ion-social-designernews-outline,.ion-social-dribbble,.ion-social-dribbble-outline,.ion-social-dropbox,.ion-social-dropbox-outline,.ion-social-facebook,.ion-social-facebook-outline,.ion-social-freebsd-devil,.ion-social-github,.ion-social-github-outline,.ion-social-googleplus,.ion-social-googleplus-outline,.ion-social-hackernews,.ion-social-hackernews-outline,.ion-social-linkedin,.ion-social-linkedin-outline,.ion-social-pinterest,.ion-social-pinterest-outline,.ion-social-reddit,.ion-social-reddit-outline,.ion-social-rss,.ion-social-rss-outline,.ion-social-skype,.ion-social-skype-outline,.ion-social-tumblr,.ion-social-tumblr-outline,.ion-social-tux,.ion-social-twitter,.ion-social-twitter-outline,.ion-social-vimeo,.ion-social-vimeo-outline,.ion-social-windows,.ion-social-windows-outline,.ion-social-wordpress,.ion-social-wordpress-outline,.ion-social-yahoo,.ion-social-yahoo-outline,.ion-social-youtube,.ion-social-youtube-outline,.ion-speakerphone,.ion-speedometer,.ion-spoon,.ion-star,.ion-stats-bars,.ion-steam,.ion-stop,.ion-thermometer,.ion-thumbsdown,.ion-thumbsup,.ion-trash-a,.ion-trash-b,.ion-umbrella,.ion-unlocked,.ion-upload,.ion-usb,.ion-videocamera,.ion-volume-high,.ion-volume-low,.ion-volume-medium,.ion-volume-mute,.ion-waterdrop,.ion-wifi,.ion-wineglass,.ion-woman,.ion-wrench,.ion-xbox{display:inline-block;font-family:"Ionicons";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-spin,.ion-loading-a,.ion-loading-b,.ion-loading-c,.ion-loading-d,.ion-looping,.ion-refreshing,.ion-ios7-reloading{-webkit-animation:spin 1s infinite linear;-moz-animation:spin 1s infinite linear;-o-animation:spin 1s infinite linear;animation:spin 1s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.ion-loading-a{-webkit-animation-timing-function:steps(8, start);-moz-animation-timing-function:steps(8, start);animation-timing-function:steps(8, start)}.ion-alert:before{content:"\f101"}.ion-alert-circled:before{content:"\f100"}.ion-android-add:before{content:"\f2c7"}.ion-android-add-contact:before{content:"\f2c6"}.ion-android-alarm:before{content:"\f2c8"}.ion-android-archive:before{content:"\f2c9"}.ion-android-arrow-back:before{content:"\f2ca"}.ion-android-arrow-down-left:before{content:"\f2cb"}.ion-android-arrow-down-right:before{content:"\f2cc"}.ion-android-arrow-up-left:before{content:"\f2cd"}.ion-android-arrow-up-right:before{content:"\f2ce"}.ion-android-battery:before{content:"\f2cf"}.ion-android-book:before{content:"\f2d0"}.ion-android-calendar:before{content:"\f2d1"}.ion-android-call:before{content:"\f2d2"}.ion-android-camera:before{content:"\f2d3"}.ion-android-chat:before{content:"\f2d4"}.ion-android-checkmark:before{content:"\f2d5"}.ion-android-clock:before{content:"\f2d6"}.ion-android-close:before{content:"\f2d7"}.ion-android-contact:before{content:"\f2d8"}.ion-android-contacts:before{content:"\f2d9"}.ion-android-data:before{content:"\f2da"}.ion-android-developer:before{content:"\f2db"}.ion-android-display:before{content:"\f2dc"}.ion-android-download:before{content:"\f2dd"}.ion-android-dropdown:before{content:"\f2de"}.ion-android-earth:before{content:"\f2df"}.ion-android-folder:before{content:"\f2e0"}.ion-android-forums:before{content:"\f2e1"}.ion-android-friends:before{content:"\f2e2"}.ion-android-hand:before{content:"\f2e3"}.ion-android-image:before{content:"\f2e4"}.ion-android-inbox:before{content:"\f2e5"}.ion-android-information:before{content:"\f2e6"}.ion-android-keypad:before{content:"\f2e7"}.ion-android-lightbulb:before{content:"\f2e8"}.ion-android-locate:before{content:"\f2e9"}.ion-android-location:before{content:"\f2ea"}.ion-android-mail:before{content:"\f2eb"}.ion-android-microphone:before{content:"\f2ec"}.ion-android-mixer:before{content:"\f2ed"}.ion-android-more:before{content:"\f2ee"}.ion-android-note:before{content:"\f2ef"}.ion-android-playstore:before{content:"\f2f0"}.ion-android-printer:before{content:"\f2f1"}.ion-android-promotion:before{content:"\f2f2"}.ion-android-reminder:before{content:"\f2f3"}.ion-android-remove:before{content:"\f2f4"}.ion-android-search:before{content:"\f2f5"}.ion-android-send:before{content:"\f2f6"}.ion-android-settings:before{content:"\f2f7"}.ion-android-share:before{content:"\f2f8"}.ion-android-social:before{content:"\f2fa"}.ion-android-social-user:before{content:"\f2f9"}.ion-android-sort:before{content:"\f2fb"}.ion-android-star:before{content:"\f2fc"}.ion-android-stopwatch:before{content:"\f2fd"}.ion-android-storage:before{content:"\f2fe"}.ion-android-system-back:before{content:"\f2ff"}.ion-android-system-home:before{content:"\f300"}.ion-android-system-windows:before{content:"\f301"}.ion-android-timer:before{content:"\f302"}.ion-android-trash:before{content:"\f303"}.ion-android-volume:before{content:"\f304"}.ion-android-wifi:before{content:"\f305"}.ion-archive:before{content:"\f102"}.ion-arrow-down-a:before{content:"\f103"}.ion-arrow-down-b:before{content:"\f104"}.ion-arrow-down-c:before{content:"\f105"}.ion-arrow-expand:before{content:"\f25e"}.ion-arrow-graph-down-left:before{content:"\f25f"}.ion-arrow-graph-down-right:before{content:"\f260"}.ion-arrow-graph-up-left:before{content:"\f261"}.ion-arrow-graph-up-right:before{content:"\f262"}.ion-arrow-left-a:before{content:"\f106"}.ion-arrow-left-b:before{content:"\f107"}.ion-arrow-left-c:before{content:"\f108"}.ion-arrow-move:before{content:"\f263"}.ion-arrow-resize:before{content:"\f264"}.ion-arrow-return-left:before{content:"\f265"}.ion-arrow-return-right:before{content:"\f266"}.ion-arrow-right-a:before{content:"\f109"}.ion-arrow-right-b:before{content:"\f10a"}.ion-arrow-right-c:before{content:"\f10b"}.ion-arrow-shrink:before{content:"\f267"}.ion-arrow-swap:before{content:"\f268"}.ion-arrow-up-a:before{content:"\f10c"}.ion-arrow-up-b:before{content:"\f10d"}.ion-arrow-up-c:before{content:"\f10e"}.ion-at:before{content:"\f10f"}.ion-bag:before{content:"\f110"}.ion-battery-charging:before{content:"\f111"}.ion-battery-empty:before{content:"\f112"}.ion-battery-full:before{content:"\f113"}.ion-battery-half:before{content:"\f114"}.ion-battery-low:before{content:"\f115"}.ion-beaker:before{content:"\f269"}.ion-beer:before{content:"\f26a"}.ion-bluetooth:before{content:"\f116"}.ion-bookmark:before{content:"\f26b"}.ion-briefcase:before{content:"\f26c"}.ion-bug:before{content:"\f2be"}.ion-calculator:before{content:"\f26d"}.ion-calendar:before{content:"\f117"}.ion-camera:before{content:"\f118"}.ion-card:before{content:"\f119"}.ion-chatbox:before{content:"\f11b"}.ion-chatbox-working:before{content:"\f11a"}.ion-chatboxes:before{content:"\f11c"}.ion-chatbubble:before{content:"\f11e"}.ion-chatbubble-working:before{content:"\f11d"}.ion-chatbubbles:before{content:"\f11f"}.ion-checkmark:before{content:"\f122"}.ion-checkmark-circled:before{content:"\f120"}.ion-checkmark-round:before{content:"\f121"}.ion-chevron-down:before{content:"\f123"}.ion-chevron-left:before{content:"\f124"}.ion-chevron-right:before{content:"\f125"}.ion-chevron-up:before{content:"\f126"}.ion-clipboard:before{content:"\f127"}.ion-clock:before{content:"\f26e"}.ion-close:before{content:"\f12a"}.ion-close-circled:before{content:"\f128"}.ion-close-round:before{content:"\f129"}.ion-cloud:before{content:"\f12b"}.ion-code:before{content:"\f271"}.ion-code-download:before{content:"\f26f"}.ion-code-working:before{content:"\f270"}.ion-coffee:before{content:"\f272"}.ion-compass:before{content:"\f273"}.ion-compose:before{content:"\f12c"}.ion-connection-bars:before{content:"\f274"}.ion-contrast:before{content:"\f275"}.ion-disc:before{content:"\f12d"}.ion-document:before{content:"\f12f"}.ion-document-text:before{content:"\f12e"}.ion-drag:before{content:"\f130"}.ion-earth:before{content:"\f276"}.ion-edit:before{content:"\f2bf"}.ion-egg:before{content:"\f277"}.ion-eject:before{content:"\f131"}.ion-email:before{content:"\f132"}.ion-eye:before{content:"\f133"}.ion-eye-disabled:before{content:"\f306"}.ion-female:before{content:"\f278"}.ion-filing:before{content:"\f134"}.ion-film-marker:before{content:"\f135"}.ion-flag:before{content:"\f279"}.ion-flash:before{content:"\f137"}.ion-flash-off:before{content:"\f136"}.ion-flask:before{content:"\f138"}.ion-folder:before{content:"\f139"}.ion-fork:before{content:"\f27a"}.ion-fork-repo:before{content:"\f2c0"}.ion-forward:before{content:"\f13a"}.ion-game-controller-a:before{content:"\f13b"}.ion-game-controller-b:before{content:"\f13c"}.ion-gear-a:before{content:"\f13d"}.ion-gear-b:before{content:"\f13e"}.ion-grid:before{content:"\f13f"}.ion-hammer:before{content:"\f27b"}.ion-headphone:before{content:"\f140"}.ion-heart:before{content:"\f141"}.ion-help:before{content:"\f143"}.ion-help-buoy:before{content:"\f27c"}.ion-help-circled:before{content:"\f142"}.ion-home:before{content:"\f144"}.ion-icecream:before{content:"\f27d"}.ion-icon-social-google-plus:before{content:"\f146"}.ion-icon-social-google-plus-outline:before{content:"\f145"}.ion-image:before{content:"\f147"}.ion-images:before{content:"\f148"}.ion-information:before{content:"\f14a"}.ion-information-circled:before{content:"\f149"}.ion-ionic:before{content:"\f14b"}.ion-ios7-alarm:before{content:"\f14d"}.ion-ios7-alarm-outline:before{content:"\f14c"}.ion-ios7-albums:before{content:"\f14f"}.ion-ios7-albums-outline:before{content:"\f14e"}.ion-ios7-arrow-back:before{content:"\f150"}.ion-ios7-arrow-down:before{content:"\f151"}.ion-ios7-arrow-forward:before{content:"\f152"}.ion-ios7-arrow-left:before{content:"\f153"}.ion-ios7-arrow-right:before{content:"\f154"}.ion-ios7-arrow-thin-down:before{content:"\f27e"}.ion-ios7-arrow-thin-left:before{content:"\f27f"}.ion-ios7-arrow-thin-right:before{content:"\f280"}.ion-ios7-arrow-thin-up:before{content:"\f281"}.ion-ios7-arrow-up:before{content:"\f155"}.ion-ios7-at:before{content:"\f157"}.ion-ios7-at-outline:before{content:"\f156"}.ion-ios7-bell:before{content:"\f159"}.ion-ios7-bell-outline:before{content:"\f158"}.ion-ios7-bolt:before{content:"\f15b"}.ion-ios7-bolt-outline:before{content:"\f15a"}.ion-ios7-bookmarks:before{content:"\f15d"}.ion-ios7-bookmarks-outline:before{content:"\f15c"}.ion-ios7-box:before{content:"\f15f"}.ion-ios7-box-outline:before{content:"\f15e"}.ion-ios7-briefcase:before{content:"\f283"}.ion-ios7-briefcase-outline:before{content:"\f282"}.ion-ios7-browsers:before{content:"\f161"}.ion-ios7-browsers-outline:before{content:"\f160"}.ion-ios7-calculator:before{content:"\f285"}.ion-ios7-calculator-outline:before{content:"\f284"}.ion-ios7-calendar:before{content:"\f163"}.ion-ios7-calendar-outline:before{content:"\f162"}.ion-ios7-camera:before{content:"\f165"}.ion-ios7-camera-outline:before{content:"\f164"}.ion-ios7-cart:before{content:"\f167"}.ion-ios7-cart-outline:before{content:"\f166"}.ion-ios7-chatboxes:before{content:"\f169"}.ion-ios7-chatboxes-outline:before{content:"\f168"}.ion-ios7-chatbubble:before{content:"\f16b"}.ion-ios7-chatbubble-outline:before{content:"\f16a"}.ion-ios7-checkmark:before{content:"\f16e"}.ion-ios7-checkmark-empty:before{content:"\f16c"}.ion-ios7-checkmark-outline:before{content:"\f16d"}.ion-ios7-circle-filled:before{content:"\f16f"}.ion-ios7-circle-outline:before{content:"\f170"}.ion-ios7-clock:before{content:"\f172"}.ion-ios7-clock-outline:before{content:"\f171"}.ion-ios7-close:before{content:"\f2bc"}.ion-ios7-close-empty:before{content:"\f2bd"}.ion-ios7-close-outline:before{content:"\f2bb"}.ion-ios7-cloud:before{content:"\f178"}.ion-ios7-cloud-download:before{content:"\f174"}.ion-ios7-cloud-download-outline:before{content:"\f173"}.ion-ios7-cloud-outline:before{content:"\f175"}.ion-ios7-cloud-upload:before{content:"\f177"}.ion-ios7-cloud-upload-outline:before{content:"\f176"}.ion-ios7-cloudy:before{content:"\f17a"}.ion-ios7-cloudy-night:before{content:"\f308"}.ion-ios7-cloudy-night-outline:before{content:"\f307"}.ion-ios7-cloudy-outline:before{content:"\f179"}.ion-ios7-cog:before{content:"\f17c"}.ion-ios7-cog-outline:before{content:"\f17b"}.ion-ios7-compose:before{content:"\f17e"}.ion-ios7-compose-outline:before{content:"\f17d"}.ion-ios7-contact:before{content:"\f180"}.ion-ios7-contact-outline:before{content:"\f17f"}.ion-ios7-copy:before{content:"\f182"}.ion-ios7-copy-outline:before{content:"\f181"}.ion-ios7-download:before{content:"\f184"}.ion-ios7-download-outline:before{content:"\f183"}.ion-ios7-drag:before{content:"\f185"}.ion-ios7-email:before{content:"\f187"}.ion-ios7-email-outline:before{content:"\f186"}.ion-ios7-eye:before{content:"\f189"}.ion-ios7-eye-outline:before{content:"\f188"}.ion-ios7-fastforward:before{content:"\f18b"}.ion-ios7-fastforward-outline:before{content:"\f18a"}.ion-ios7-filing:before{content:"\f18d"}.ion-ios7-filing-outline:before{content:"\f18c"}.ion-ios7-film:before{content:"\f18f"}.ion-ios7-film-outline:before{content:"\f18e"}.ion-ios7-flag:before{content:"\f191"}.ion-ios7-flag-outline:before{content:"\f190"}.ion-ios7-folder:before{content:"\f193"}.ion-ios7-folder-outline:before{content:"\f192"}.ion-ios7-gear:before{content:"\f195"}.ion-ios7-gear-outline:before{content:"\f194"}.ion-ios7-glasses:before{content:"\f197"}.ion-ios7-glasses-outline:before{content:"\f196"}.ion-ios7-heart:before{content:"\f199"}.ion-ios7-heart-outline:before{content:"\f198"}.ion-ios7-help:before{content:"\f19c"}.ion-ios7-help-empty:before{content:"\f19a"}.ion-ios7-help-outline:before{content:"\f19b"}.ion-ios7-infinite:before{content:"\f19e"}.ion-ios7-infinite-outline:before{content:"\f19d"}.ion-ios7-information:before{content:"\f1a1"}.ion-ios7-information-empty:before{content:"\f19f"}.ion-ios7-information-outline:before{content:"\f1a0"}.ion-ios7-ionic-outline:before{content:"\f1a2"}.ion-ios7-keypad:before{content:"\f1a4"}.ion-ios7-keypad-outline:before{content:"\f1a3"}.ion-ios7-lightbulb:before{content:"\f287"}.ion-ios7-lightbulb-outline:before{content:"\f286"}.ion-ios7-location:before{content:"\f1a6"}.ion-ios7-location-outline:before{content:"\f1a5"}.ion-ios7-locked:before{content:"\f1a8"}.ion-ios7-locked-outline:before{content:"\f1a7"}.ion-ios7-medkit:before{content:"\f289"}.ion-ios7-medkit-outline:before{content:"\f288"}.ion-ios7-mic:before{content:"\f1ab"}.ion-ios7-mic-off:before{content:"\f1a9"}.ion-ios7-mic-outline:before{content:"\f1aa"}.ion-ios7-minus:before{content:"\f1ae"}.ion-ios7-minus-empty:before{content:"\f1ac"}.ion-ios7-minus-outline:before{content:"\f1ad"}.ion-ios7-monitor:before{content:"\f1b0"}.ion-ios7-monitor-outline:before{content:"\f1af"}.ion-ios7-moon:before{content:"\f1b2"}.ion-ios7-moon-outline:before{content:"\f1b1"}.ion-ios7-more:before{content:"\f1b4"}.ion-ios7-more-outline:before{content:"\f1b3"}.ion-ios7-musical-note:before{content:"\f1b5"}.ion-ios7-musical-notes:before{content:"\f1b6"}.ion-ios7-navigate:before{content:"\f1b8"}.ion-ios7-navigate-outline:before{content:"\f1b7"}.ion-ios7-paperplane:before{content:"\f1ba"}.ion-ios7-paperplane-outline:before{content:"\f1b9"}.ion-ios7-partlysunny:before{content:"\f1bc"}.ion-ios7-partlysunny-outline:before{content:"\f1bb"}.ion-ios7-pause:before{content:"\f1be"}.ion-ios7-pause-outline:before{content:"\f1bd"}.ion-ios7-people:before{content:"\f1c0"}.ion-ios7-people-outline:before{content:"\f1bf"}.ion-ios7-person:before{content:"\f1c2"}.ion-ios7-person-outline:before{content:"\f1c1"}.ion-ios7-personadd:before{content:"\f1c4"}.ion-ios7-personadd-outline:before{content:"\f1c3"}.ion-ios7-photos:before{content:"\f1c6"}.ion-ios7-photos-outline:before{content:"\f1c5"}.ion-ios7-pie:before{content:"\f28b"}.ion-ios7-pie-outline:before{content:"\f28a"}.ion-ios7-play:before{content:"\f1c8"}.ion-ios7-play-outline:before{content:"\f1c7"}.ion-ios7-plus:before{content:"\f1cb"}.ion-ios7-plus-empty:before{content:"\f1c9"}.ion-ios7-plus-outline:before{content:"\f1ca"}.ion-ios7-pricetag:before{content:"\f28d"}.ion-ios7-pricetag-outline:before{content:"\f28c"}.ion-ios7-printer:before{content:"\f1cd"}.ion-ios7-printer-outline:before{content:"\f1cc"}.ion-ios7-rainy:before{content:"\f1cf"}.ion-ios7-rainy-outline:before{content:"\f1ce"}.ion-ios7-recording:before{content:"\f1d1"}.ion-ios7-recording-outline:before{content:"\f1d0"}.ion-ios7-redo:before{content:"\f1d3"}.ion-ios7-redo-outline:before{content:"\f1d2"}.ion-ios7-refresh:before{content:"\f1d6"}.ion-ios7-refresh-empty:before{content:"\f1d4"}.ion-ios7-refresh-outline:before{content:"\f1d5"}.ion-ios7-reload:before,.ion-ios7-reloading:before{content:"\f28e"}.ion-ios7-rewind:before{content:"\f1d8"}.ion-ios7-rewind-outline:before{content:"\f1d7"}.ion-ios7-search:before{content:"\f1da"}.ion-ios7-search-strong:before{content:"\f1d9"}.ion-ios7-skipbackward:before{content:"\f1dc"}.ion-ios7-skipbackward-outline:before{content:"\f1db"}.ion-ios7-skipforward:before{content:"\f1de"}.ion-ios7-skipforward-outline:before{content:"\f1dd"}.ion-ios7-snowy:before{content:"\f309"}.ion-ios7-speedometer:before{content:"\f290"}.ion-ios7-speedometer-outline:before{content:"\f28f"}.ion-ios7-star:before{content:"\f1e0"}.ion-ios7-star-outline:before{content:"\f1df"}.ion-ios7-stopwatch:before{content:"\f1e2"}.ion-ios7-stopwatch-outline:before{content:"\f1e1"}.ion-ios7-sunny:before{content:"\f1e4"}.ion-ios7-sunny-outline:before{content:"\f1e3"}.ion-ios7-telephone:before{content:"\f1e6"}.ion-ios7-telephone-outline:before{content:"\f1e5"}.ion-ios7-thunderstorm:before{content:"\f1e8"}.ion-ios7-thunderstorm-outline:before{content:"\f1e7"}.ion-ios7-time:before{content:"\f292"}.ion-ios7-time-outline:before{content:"\f291"}.ion-ios7-timer:before{content:"\f1ea"}.ion-ios7-timer-outline:before{content:"\f1e9"}.ion-ios7-trash:before{content:"\f1ec"}.ion-ios7-trash-outline:before{content:"\f1eb"}.ion-ios7-undo:before{content:"\f1ee"}.ion-ios7-undo-outline:before{content:"\f1ed"}.ion-ios7-unlocked:before{content:"\f1f0"}.ion-ios7-unlocked-outline:before{content:"\f1ef"}.ion-ios7-upload:before{content:"\f1f2"}.ion-ios7-upload-outline:before{content:"\f1f1"}.ion-ios7-videocam:before{content:"\f1f4"}.ion-ios7-videocam-outline:before{content:"\f1f3"}.ion-ios7-volume-high:before{content:"\f1f5"}.ion-ios7-volume-low:before{content:"\f1f6"}.ion-ios7-wineglass:before{content:"\f294"}.ion-ios7-wineglass-outline:before{content:"\f293"}.ion-ios7-world:before{content:"\f1f8"}.ion-ios7-world-outline:before{content:"\f1f7"}.ion-ipad:before{content:"\f1f9"}.ion-iphone:before{content:"\f1fa"}.ion-ipod:before{content:"\f1fb"}.ion-jet:before{content:"\f295"}.ion-key:before{content:"\f296"}.ion-knife:before{content:"\f297"}.ion-laptop:before{content:"\f1fc"}.ion-leaf:before{content:"\f1fd"}.ion-levels:before{content:"\f298"}.ion-lightbulb:before{content:"\f299"}.ion-link:before{content:"\f1fe"}.ion-load-a:before,.ion-loading-a:before{content:"\f29a"}.ion-load-b:before,.ion-loading-b:before{content:"\f29b"}.ion-load-c:before,.ion-loading-c:before{content:"\f29c"}.ion-load-d:before,.ion-loading-d:before{content:"\f29d"}.ion-location:before{content:"\f1ff"}.ion-locked:before{content:"\f200"}.ion-log-in:before{content:"\f29e"}.ion-log-out:before{content:"\f29f"}.ion-loop:before,.ion-looping:before{content:"\f201"}.ion-magnet:before{content:"\f2a0"}.ion-male:before{content:"\f2a1"}.ion-man:before{content:"\f202"}.ion-map:before{content:"\f203"}.ion-medkit:before{content:"\f2a2"}.ion-mic-a:before{content:"\f204"}.ion-mic-b:before{content:"\f205"}.ion-mic-c:before{content:"\f206"}.ion-minus:before{content:"\f209"}.ion-minus-circled:before{content:"\f207"}.ion-minus-round:before{content:"\f208"}.ion-model-s:before{content:"\f2c1"}.ion-monitor:before{content:"\f20a"}.ion-more:before{content:"\f20b"}.ion-music-note:before{content:"\f20c"}.ion-navicon:before{content:"\f20e"}.ion-navicon-round:before{content:"\f20d"}.ion-navigate:before{content:"\f2a3"}.ion-no-smoking:before{content:"\f2c2"}.ion-nuclear:before{content:"\f2a4"}.ion-paper-airplane:before{content:"\f2c3"}.ion-paperclip:before{content:"\f20f"}.ion-pause:before{content:"\f210"}.ion-person:before{content:"\f213"}.ion-person-add:before{content:"\f211"}.ion-person-stalker:before{content:"\f212"}.ion-pie-graph:before{content:"\f2a5"}.ion-pin:before{content:"\f2a6"}.ion-pinpoint:before{content:"\f2a7"}.ion-pizza:before{content:"\f2a8"}.ion-plane:before{content:"\f214"}.ion-play:before{content:"\f215"}.ion-playstation:before{content:"\f30a"}.ion-plus:before{content:"\f218"}.ion-plus-circled:before{content:"\f216"}.ion-plus-round:before{content:"\f217"}.ion-pound:before{content:"\f219"}.ion-power:before{content:"\f2a9"}.ion-pricetag:before{content:"\f2aa"}.ion-pricetags:before{content:"\f2ab"}.ion-printer:before{content:"\f21a"}.ion-radio-waves:before{content:"\f2ac"}.ion-record:before{content:"\f21b"}.ion-refresh:before,.ion-refreshing:before{content:"\f21c"}.ion-reply:before{content:"\f21e"}.ion-reply-all:before{content:"\f21d"}.ion-search:before{content:"\f21f"}.ion-settings:before{content:"\f2ad"}.ion-share:before{content:"\f220"}.ion-shuffle:before{content:"\f221"}.ion-skip-backward:before{content:"\f222"}.ion-skip-forward:before{content:"\f223"}.ion-social-android:before{content:"\f225"}.ion-social-android-outline:before{content:"\f224"}.ion-social-apple:before{content:"\f227"}.ion-social-apple-outline:before{content:"\f226"}.ion-social-bitcoin:before{content:"\f2af"}.ion-social-bitcoin-outline:before{content:"\f2ae"}.ion-social-buffer:before{content:"\f229"}.ion-social-buffer-outline:before{content:"\f228"}.ion-social-designernews:before{content:"\f22b"}.ion-social-designernews-outline:before{content:"\f22a"}.ion-social-dribbble:before{content:"\f22d"}.ion-social-dribbble-outline:before{content:"\f22c"}.ion-social-dropbox:before{content:"\f22f"}.ion-social-dropbox-outline:before{content:"\f22e"}.ion-social-facebook:before{content:"\f231"}.ion-social-facebook-outline:before{content:"\f230"}.ion-social-freebsd-devil:before{content:"\f2c4"}.ion-social-github:before{content:"\f233"}.ion-social-github-outline:before{content:"\f232"}.ion-social-googleplus:before{content:"\f235"}.ion-social-googleplus-outline:before{content:"\f234"}.ion-social-hackernews:before{content:"\f237"}.ion-social-hackernews-outline:before{content:"\f236"}.ion-social-linkedin:before{content:"\f239"}.ion-social-linkedin-outline:before{content:"\f238"}.ion-social-pinterest:before{content:"\f2b1"}.ion-social-pinterest-outline:before{content:"\f2b0"}.ion-social-reddit:before{content:"\f23b"}.ion-social-reddit-outline:before{content:"\f23a"}.ion-social-rss:before{content:"\f23d"}.ion-social-rss-outline:before{content:"\f23c"}.ion-social-skype:before{content:"\f23f"}.ion-social-skype-outline:before{content:"\f23e"}.ion-social-tumblr:before{content:"\f241"}.ion-social-tumblr-outline:before{content:"\f240"}.ion-social-tux:before{content:"\f2c5"}.ion-social-twitter:before{content:"\f243"}.ion-social-twitter-outline:before{content:"\f242"}.ion-social-vimeo:before{content:"\f245"}.ion-social-vimeo-outline:before{content:"\f244"}.ion-social-windows:before{content:"\f247"}.ion-social-windows-outline:before{content:"\f246"}.ion-social-wordpress:before{content:"\f249"}.ion-social-wordpress-outline:before{content:"\f248"}.ion-social-yahoo:before{content:"\f24b"}.ion-social-yahoo-outline:before{content:"\f24a"}.ion-social-youtube:before{content:"\f24d"}.ion-social-youtube-outline:before{content:"\f24c"}.ion-speakerphone:before{content:"\f2b2"}.ion-speedometer:before{content:"\f2b3"}.ion-spoon:before{content:"\f2b4"}.ion-star:before{content:"\f24e"}.ion-stats-bars:before{content:"\f2b5"}.ion-steam:before{content:"\f30b"}.ion-stop:before{content:"\f24f"}.ion-thermometer:before{content:"\f2b6"}.ion-thumbsdown:before{content:"\f250"}.ion-thumbsup:before{content:"\f251"}.ion-trash-a:before{content:"\f252"}.ion-trash-b:before{content:"\f253"}.ion-umbrella:before{content:"\f2b7"}.ion-unlocked:before{content:"\f254"}.ion-upload:before{content:"\f255"}.ion-usb:before{content:"\f2b8"}.ion-videocamera:before{content:"\f256"}.ion-volume-high:before{content:"\f257"}.ion-volume-low:before{content:"\f258"}.ion-volume-medium:before{content:"\f259"}.ion-volume-mute:before{content:"\f25a"}.ion-waterdrop:before{content:"\f25b"}.ion-wifi:before{content:"\f25c"}.ion-wineglass:before{content:"\f2b9"}.ion-woman:before{content:"\f25d"}.ion-wrench:before{content:"\f2ba"}.ion-xbox:before{content:"\f30c"} diff --git a/public/self/css/jquery.yhhDataTable.css b/public/self/css/jquery.yhhDataTable.css new file mode 100644 index 000000000..ad35c44f7 --- /dev/null +++ b/public/self/css/jquery.yhhDataTable.css @@ -0,0 +1,117 @@ +.yhh-data-table-frame{ + color:inherit;font-family:inherit;font-size:14px;font-weight:normal; + border:0;margin:0;padding:0;background-color:#FFFFFF; +} +/*table样式*/ +.yhh-data-table-frame>table.yhh-data-table{ + width:100%;border-collapse:collapse;border-spacing:0;empty-cells:show; +} +.yhh-data-table-frame>table.yhh-data-table td, +.yhh-data-table-frame>table.yhh-data-table th{ + vertical-align:middle;text-align:left;border:1px solid #DDDDDD; +} +.yhh-data-table-frame>table.yhh-data-table.dataTable-theme-a td, +.yhh-data-table-frame>table.yhh-data-table.dataTable-theme-a th{ + border:0; +} +.yhh-data-table-frame>table.yhh-data-table.dataTable-theme-a tr{ + border-bottom:1px solid #DDDDDD; +} +.yhh-data-table-frame>table.yhh-data-table td{ + background-color:#FFFFFF;color:inherit; +} +.yhh-data-table-frame>table.yhh-data-table th, +.yhh-data-table-frame>table.yhh-data-table thead td, +.yhh-data-table-frame>table.yhh-data-table tfoot td{ + background-color:#DDDDDD;color:inherit;font-weight:bold; +} +.yhh-data-table-frame>table.yhh-data-table.dataTable-theme-a th, +.yhh-data-table-frame>table.yhh-data-table.dataTable-theme-a thead td, +.yhh-data-table-frame>table.yhh-data-table.dataTable-theme-a tfoot td{ + background-color:#FFFFFF; +} +.yhh-data-table-frame>table.yhh-data-table tbody th, +.yhh-data-table-frame>table.yhh-data-table tbody td{ + padding:10px 10px; +} +.yhh-data-table-frame>table.yhh-data-table thead th, +.yhh-data-table-frame>table.yhh-data-table thead td, +.yhh-data-table-frame>table.yhh-data-table tfoot th, +.yhh-data-table-frame>table.yhh-data-table tfoot td{ + padding:10px 10px; +} +.yhh-data-table-frame>table.yhh-data-table tr.odd td{} +.yhh-data-table-frame>table.yhh-data-table tr.even td{background-color:#F6F6F6;} +.yhh-data-table-frame>table.yhh-data-table tr.hover-row td{ + background-color:#F0F8FF;color:#00BFFF; +} +.yhh-data-table-frame>table.yhh-data-table tr.selected-row td{ + background-color:#E6E6FA; +} +/*table上下功能行公共样式*/ +.yhh-data-table-frame>.data-table-top-box, +.yhh-data-table-frame>.data-table-bottom-box{ + position:relative; +} +.yhh-data-table-frame>.data-table-top-box, +.yhh-data-table-frame>.data-table-bottom-box, +.yhh-data-table-frame>.data-table-top-box>.per-length-box, +.yhh-data-table-frame>.data-table-bottom-box>.info-box, +.yhh-data-table-frame>.data-table-bottom-box>.paginate-box{ + height:35px; +} +.yhh-data-table-frame>.data-table-top-box>.per-length-box, +.yhh-data-table-frame>.data-table-bottom-box>.info-box, +.yhh-data-table-frame>.data-table-bottom-box>.paginate-box{ + line-height:35px;position:absolute; +} +/*改变每页显示数目功能样式*/ +.yhh-data-table-frame>.data-table-top-box>.per-length-box{ + top:0;right:2px;padding-right:50px;z-index:8; +} +.yhh-data-table-frame>.data-table-top-box>.per-length-box>.per-length-select{ + position:absolute;top:1.5px;right:0;width:50px;margin:0; +} +.yhh-data-table-frame>.data-table-top-box>.per-length-box dt.sel-choosen-box, +.yhh-data-table-frame>.data-table-top-box>.per-length-box dd.sel-list{ + border:1px solid #DDDDDD;border-radius:0; +} +.yhh-data-table-frame>.data-table-top-box>.per-length-box dt.sel-choosen-box{ + height:30px;line-height:30px;cursor:pointer;background-color:#F0F8FF; + position:relative;padding-right:13px;padding-left:8px; +} +.yhh-data-table-frame>.data-table-top-box>.per-length-box dt.sel-choosen-box.expand{ + border-radius:0; +} +.yhh-data-table-frame>.data-table-top-box>.per-length-box dd.sel-list.expand{ + border-radius:0;border-top:0;margin:0; +} +.yhh-data-table-frame>.data-table-top-box>.per-length-box i.sel-icon{ + height:30px;line-height:30px;position:absolute;top:0;right:2px;color:#AAAAAA; +} +.yhh-data-table-frame>.data-table-top-box>.per-length-box dd.sel-list{ + z-index:10;max-height:200px;height:auto; + border-radius:0;border-top:0; +} +.yhh-data-table-frame>.data-table-top-box>.per-length-box .sel-option{ + display:block;border-bottom:1px solid #CCCCCC;line-height:normal; + background-color:#FFFFFF;padding:6.5px 0;padding-left:8px;cursor:pointer; +} +.yhh-data-table-frame>.data-table-top-box>.per-length-box .sel-option:hover{ + background-color:#DDE4FE; +} +.yhh-data-table-frame>.data-table-top-box>.per-length-box .sel-option:active{ + background-color:#DA70D6; +} +.yhh-data-table-frame>.data-table-top-box>.per-length-box .sel-option.last-option{ + border-bottom:0; +} +/*显示数据信息功能样式*/ +.yhh-data-table-frame>.data-table-bottom-box>.info-box{ + top:0;left:2px; +} +.yhh-data-table-frame>.data-table-bottom-box>.info-box .info-num{color:#F5A523;padding:0 5px;} +/*翻页按钮功能样式*/ +.yhh-data-table-frame>.data-table-bottom-box>.paginate-box{ + top:3px;right:0;overflow:hidden; +} \ No newline at end of file diff --git a/public/self/css/style.css b/public/self/css/style.css new file mode 100644 index 000000000..9a2325e96 --- /dev/null +++ b/public/self/css/style.css @@ -0,0 +1,4263 @@ +/*@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic); +@import url(//fonts.googleapis.com/css?family=Kaushan+Script);*/ +/*! + * Director free version + * Author: web-apps.ninja + * License: Open source - MIT + * Please visit http://opensource.org/licenses/MIT for more information +!*/ +/* + Core: General style +---------------------------- +*/ +html, +body { + overflow-x: hidden!important; + /*font-family: 'Source Sans Pro', sans-serif;*/ + font-family: 'Lato', sans-serif; + -webkit-font-smoothing: antialiased; + min-height: 100%; + background: #f1f2f7; +} +a { + color: #3c8dbc; +} +a:hover, +a:active, +a:focus { + outline: none; + text-decoration: none; + color: #72afd2; +} +/* Layouts */ +.wrapper { + min-height: 100%; +} +.wrapper:before, +.wrapper:after { + display: table; + content: " "; +} +.wrapper:after { + clear: both; +} +/* Header */ +body > .header { + position: absolute; + top: 0; + left: 0; + right: 0; + z-index: 1030; +} +/* Define 2 column template */ +.right-side, +.left-side { + min-height: 100%; + display: block; +} +.pull-heigth{ + min-height: 100%; +} +/*right side - contins main content*/ +.right-side { + background-color: #f1f2f7; + margin-left: 220px; +} +/*left side - contains sidebar*/ +.left-side { + position: absolute; + width: 220px; + top: 0; +} +.pull-heigth{ + position: absolute; + width: 220px; + top: 0; +} +@media screen and (min-width: 992px) { + .left-side { + top: 50px; + } + /*Right side strech mode*/ + .right-side.strech { + margin-left: 0; + } + .right-side.strech > .content-header { + margin-top: 0px; + } + /* Left side collapse */ + .left-side.collapse-left { + left: -220px; + } +} +/*Give content full width on xs screens*/ +@media screen and (max-width: 992px) { + .right-side { + margin-left: 0; + } +} +/* + By default the layout is not fixed but if you add the class .fixed to the body element + the sidebar and the navbar will automatically become poisitioned fixed +*/ +body.fixed > .header, +body.fixed .left-side, +body.fixed .navbar { + position: fixed; +} +body.fixed > .header { + top: 0; + right: 0; + left: 0; +} +body.fixed .navbar { + left: 0; + right: 0; +} +body.fixed .wrapper { + margin-top: 50px; +} +/* Content */ +.content { + padding: 20px 15px; + background: #f0f3f4; + overflow: auto; +} +/* Utility */ +/* H1 - H6 font */ +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + /*font-family: 'Source Sans Pro', sans-serif;*/ + font-family: 'Lato', sans-serif; +} +/* Page Header */ +.page-header { + margin: 10px 0 20px 0; + font-size: 22px; +} +.page-header > small { + color: #666; + display: block; + margin-top: 5px; +} +/* All images should be responsive */ +img { + max-width: 100% !important; +} +.sort-highlight { + background: #f4f4f4; + border: 1px dashed #ddd; + margin-bottom: 10px; +} +/* 10px padding and margins */ +.pad { + padding: 20px 10px 10px; +} +.margin { + margin: 10px; +} +.pad-20 { + padding: 20px; +} +/* Display inline */ +.inline { + display: inline; + width: auto; +} +/*alert*/ +.alert-danger { + background-color: #fad5d5; +} +.alert-success { + background-color: #cffabd; +} +.alert-warning { + background-color: #fcf4c9; +} +/*badge colors*/ + +.badge-success { + background-color: #27C24C; + color: #DFF5E4; +} +.badge-warning { + background-color: #FAD733; + color: #FDF8E5; +} +.badge-info { + background-color: #23B7E5; + color: #E3F6FC; +} +.badge-danger { + background-color: #F05050; + color: #FAE6E6; +} +.badge-primary { + background-color: #4697ce; +} +.badge-inverse { + background-color: #4f5259; + color: #DFE2F0; +} +.badge, .label { + font-weight: bold; + text-shadow: 0 1px 0 rgba(0,0,0,0.2); +} + +/*label*/ +.label-primary { + background-color: #4697ce; +} +.label-default { + background-color: #a1a1a1; + +} +.label-success { + background-color: #27C24C; + color: #DFF5E4; +} +.label-info { + background-color: #23B7E5; + color: #E3F6FC; +} +.label-inverse { + background-color: #4f5259; + color: #DFE2F0; +} +.label-warning { + background-color: #FAD733; + color: #FDF8E5; +} +.label-danger { + background-color: #F05050; + color: #FAE6E6; +} +/* Background colors */ +.bg-red, +.bg-yellow, +.bg-aqua, +.bg-blue, +.bg-light-blue, +.bg-green, +.bg-navy, +.bg-teal, +.bg-olive, +.bg-lime, +.bg-orange, +.bg-fuchsia, +.bg-purple, +.bg-maroon, +.bg-black +.bg-violet { + color: #f9f9f9 !important; +} + +.twt-area { + border-bottom: 1px dotted #eee; + margin-bottom: 5px; + padding-bottom: 3px; +} +.twt-area textarea { + margin-bottom: 3px; +} +.m-lr-10 { + /*margin-top: 10px;*/ + margin-left: 10px; + margin-right: 10px; +} +.m-t-15 { + margin-top: 15px; +} +.m-b-5 { + margin-bottom: 5px; +} +.m-b-10 { + margin-bottom: 10px; +} +.m-b-15 { + margin-bottom: 15px; +} +.m-b-20 { + margin-bottom: 20px; +} +.teammates a { + color:#505050; +} +.teammates img { + border-radius: 5px; + margin-right: 10px; +} +.teammates li { + border: 1px solid #edf1f2; +} +.bg-white { + background-color: #fff !important; +} +.bg-gray { + background-color: #eaeaec !important; +} +.bg-black { + background-color: #222222 !important; +} +.bg-red { + background-color: #F05050 !important; +} +.bg-yellow { + background-color: #FAD733 !important; +} +.bg-aqua { + background-color: #4FC1E9 !important +} +.bg-blue { + background-color: #0073b7 !important; +} +.bg-light-blue { + background-color: #3c8dbc !important; +} +.bg-green { + background-color: #27C24C !important; +} +.bg-navy { + background-color: #001f3f !important; +} +.bg-teal { + background-color: #39cccc !important; +} +.bg-olive { + background-color: #3d9970 !important; +} +.bg-lime { + background-color: #01ff70 !important; +} +.bg-orange { + background-color: #ff851b !important; +} +.bg-fuchsia { + background-color: #f012be !important; +} +.bg-purple { + background-color: #932ab6 !important; +} +.bg-maroon { + background-color: #85144b !important; +} +.bg-violet { + background-color: #7266ba !important; +} +.bg-twitter { + background-color: #00c7f7; + color: white; +} +.bg-facebook { + background-color: #335397; + color: white; +} +.bg-google-plus { + background-color: #df4a32; + color: white; +} +/* Text colors */ +.text-primary { + color: #4697ce; +} +.text-info { + color: #63b7e6; +} +.text-success { + color: #7dcc93; +} +.text-warning { + color: #e8db4f; +} +.text-red { + color: #f56954 !important; +} +.text-yellow { + color: #f39c12 !important; +} +.text-aqua { + color: #00c0ef !important; +} +.text-blue { + color: #0073b7 !important; +} +.text-black { + color: #222222 !important; +} +.text-light-blue { + color: #3c8dbc !important; +} +.text-green { + color: #00a65a !important; +} +.text-navy { + color: #001f3f !important; +} +.text-teal { + color: #39cccc !important; +} +.text-olive { + color: #3d9970 !important; +} +.text-lime { + color: #01ff70 !important; +} +.text-orange { + color: #ff851b !important; +} +.text-fuchsia { + color: #f012be !important; +} +.text-purple { + color: #932ab6 !important; +} +.text-maroon { + color: #85144b !important; +} +/*slider css*/ +#red .slider-selection { + background: #f05050; +} + +#blue .slider-selection { + background: #4697ce; +} + +#green .slider-selection { + background: #27C24C; +} + +#yellow .slider-selection { + background: #fad733; +} + +#aqua .slider-selection { + background: #00c0ef; +} + +.slider-handle { + background-color: #fff; + border: 2px solid #86D4FC; +} + +/*bg-violet*/ +#purple .slider-selection { + background: #7266ba; +} +/*Hide elements by display none only*/ +.hide { + display: none !important; +} +/* Remove borders */ +.no-border { + border: 0px !important; +} +/* Remove padding */ +.no-padding { + padding: 0px !important; +} +/* Remove margins */ +.no-margin { + margin: 0px !important; +} +/* Remove box shadow */ +.no-shadow { + box-shadow: none!important; +} +/* Don't display when printing */ +@media print { + .no-print { + display: none; + } + .left-side, + .header, + .content-header { + display: none; + } + .right-side { + margin: 0; + } +} +/* Remove border radius */ +.flat { + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} +/* Change the color of the striped tables */ +.table-striped > tbody > tr:nth-child(odd) > td, +.table-striped > tbody > tr:nth-child(odd) > th { + background-color: #f3f4f5; +} +.table.no-border, +.table.no-border td, +.table.no-border th { + border: 0; +} +/* .text-center in tables */ +table.text-center, +table.text-center td, +table.text-center th { + text-align: center; +} +.table.align th { + text-align: left; +} +.table.align td { + text-align: right; +} +.text-bold, +.text-bold.table td, +.text-bold.table th { + font-weight: 700; +} +.border-radius-none { + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} +/* _fix for sparkline tooltip */ +.jqstooltip { + padding: 5px!important; + width: auto!important; + height: auto!important; +} +/* +Gradient Background colors +*/ +.bg-teal-gradient { + background: #39cccc !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #39cccc), color-stop(1, #7adddd)) !important; + background: -ms-linear-gradient(bottom, #39cccc, #7adddd) !important; + background: -moz-linear-gradient(center bottom, #39cccc 0%, #7adddd 100%) !important; + background: -o-linear-gradient(#7adddd, #39cccc) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0) !important; + color: #fff; +} +.bg-light-blue-gradient { + background: #3c8dbc !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #3c8dbc), color-stop(1, #67a8ce)) !important; + background: -ms-linear-gradient(bottom, #3c8dbc, #67a8ce) !important; + background: -moz-linear-gradient(center bottom, #3c8dbc 0%, #67a8ce 100%) !important; + background: -o-linear-gradient(#67a8ce, #3c8dbc) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#67a8ce', endColorstr='#3c8dbc', GradientType=0) !important; + color: #fff; +} +.bg-blue-gradient { + background: #0073b7 !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #0073b7), color-stop(1, #0089db)) !important; + background: -ms-linear-gradient(bottom, #0073b7, #0089db) !important; + background: -moz-linear-gradient(center bottom, #0073b7 0%, #0089db 100%) !important; + background: -o-linear-gradient(#0089db, #0073b7) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0089db', endColorstr='#0073b7', GradientType=0) !important; + color: #fff; +} +.bg-aqua-gradient { + background: #00c0ef !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00c0ef), color-stop(1, #14d1ff)) !important; + background: -ms-linear-gradient(bottom, #00c0ef, #14d1ff) !important; + background: -moz-linear-gradient(center bottom, #00c0ef 0%, #14d1ff 100%) !important; + background: -o-linear-gradient(#14d1ff, #00c0ef) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#14d1ff', endColorstr='#00c0ef', GradientType=0) !important; + color: #fff; +} +.bg-yellow-gradient { + background: #f39c12 !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f39c12), color-stop(1, #f7bc60)) !important; + background: -ms-linear-gradient(bottom, #f39c12, #f7bc60) !important; + background: -moz-linear-gradient(center bottom, #f39c12 0%, #f7bc60 100%) !important; + background: -o-linear-gradient(#f7bc60, #f39c12) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7bc60', endColorstr='#f39c12', GradientType=0) !important; + color: #fff; +} +.bg-purple-gradient { + background: #932ab6 !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #932ab6), color-stop(1, #b959d9)) !important; + background: -ms-linear-gradient(bottom, #932ab6, #b959d9) !important; + background: -moz-linear-gradient(center bottom, #932ab6 0%, #b959d9 100%) !important; + background: -o-linear-gradient(#b959d9, #932ab6) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b959d9', endColorstr='#932ab6', GradientType=0) !important; + color: #fff; +} +.bg-green-gradient { + background: #00a65a !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #00a65a), color-stop(1, #00ca6d)) !important; + background: -ms-linear-gradient(bottom, #00a65a, #00ca6d) !important; + background: -moz-linear-gradient(center bottom, #00a65a 0%, #00ca6d 100%) !important; + background: -o-linear-gradient(#00ca6d, #00a65a) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ca6d', endColorstr='#00a65a', GradientType=0) !important; + color: #fff; +} +.bg-red-gradient { + background: #f56954 !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f56954), color-stop(1, #f89384)) !important; + background: -ms-linear-gradient(bottom, #f56954, #f89384) !important; + background: -moz-linear-gradient(center bottom, #f56954 0%, #f89384 100%) !important; + background: -o-linear-gradient(#f89384, #f56954) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f89384', endColorstr='#f56954', GradientType=0) !important; + color: #fff; +} +.bg-black-gradient { + background: #222222 !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #222222), color-stop(1, #3c3c3c)) !important; + background: -ms-linear-gradient(bottom, #222222, #3c3c3c) !important; + background: -moz-linear-gradient(center bottom, #222222 0%, #3c3c3c 100%) !important; + background: -o-linear-gradient(#3c3c3c, #222222) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#3c3c3c', endColorstr='#222222', GradientType=0) !important; + color: #fff; +} +.bg-maroon-gradient { + background: #85144b !important; + background: -webkit-gradient(linear, left bottom, left top, color-stop(0, #85144b), color-stop(1, #b11b64)) !important; + background: -ms-linear-gradient(bottom, #85144b, #b11b64) !important; + background: -moz-linear-gradient(center bottom, #85144b 0%, #b11b64 100%) !important; + background: -o-linear-gradient(#b11b64, #85144b) !important; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#b11b64', endColorstr='#85144b', GradientType=0) !important; + color: #fff; +} +.connectedSortable { + min-height: 100px; +} +/*--------------------------------------------------- + LESS Elements 0.9 + --------------------------------------------------- + A set of useful LESS mixins + More info at: http://lesselements.com + ---------------------------------------------------*/ +/* + Components: navbar, logo and content header +------------------------------------------------- +*/ +body > .header { + position: relative; + max-height: 100px; + z-index: 1030; +} +body > .header .navbar { + height: 50px; + margin-bottom: 0; + margin-left: 220px; +} +body > .header .navbar .sidebar-toggle { + float: left; + padding: 9px 5px; + margin-top: 8px; + margin-right: 0; + margin-bottom: 8px; + margin-left: 5px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} +body > .header .navbar .sidebar-toggle:hover .icon-bar { + background: #f6f6f6; +} +body > .header .navbar .sidebar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +body > .header .navbar .sidebar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} +body > .header .navbar .nav > li.user > a { + font-weight: bold; +} +body > .header .navbar .nav > li.user > a > .fa, +body > .header .navbar .nav > li.user > a > .glyphicon, +body > .header .navbar .nav > li.user > a > .ion { + margin-right: 5px; +} +body > .header .navbar .nav > li > a > .label { + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + position: absolute; + top: 7px; + right: 2px; + font-size: 10px; + font-weight: normal; + width: 15px; + height: 15px; + line-height: 1.0em; + text-align: center; + padding: 2px; +} +body > .header .navbar .nav > li > a:hover > .label { + top: 3px; +} +body > .header .logo { + float: left; + font-size: 20px; + line-height: 50px; + text-align: center; + padding: 0 10px; + width: 220px; + font-family: 'Kaushan Script', cursive; + font-weight: 500; + height: 50px; + display: block; +} +body > .header .logo .icon { + margin-right: 10px; +} +.right-side > .content-header { + position: relative; + padding: 15px; +} +.right-side > .content-header > h1 { + margin: 0; + font-size: 24px; +} +.right-side > .content-header > h1 > small { + font-size: 15px; + display: inline-block; + padding-left: 4px; + font-weight: 300; +} +.breadcrumb { + background-color: #fff; +} +.breadcrumb a { + color: #000; +} +.right-side > .content-header > .breadcrumb { + float: right; + background: transparent; + margin-top: 0px; + margin-bottom: 0; + font-size: 12px; + padding: 7px 5px; + position: absolute; + top: 15px; + right: 10px; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; +} +.breadcrumb-alt { + overflow: hidden; + list-style: none; + margin: 0px 0px 20px; + padding: 0px; + width: 100%; +} +.breadcrumb-alt > li { +float: left; +margin: 0px 25px 0px 0px; +} +.breadcrumb-alt > li > a { +position: relative; +float: left; +background-color: rgb(238, 238, 238); +color: rgb(118, 118, 118); +font-size: 12px; +padding: 10px; +} +.breadcrumb-alt > li > a::before { +position: absolute; +top: 50%; +left: -1em; +margin-top: -1.6em; +border-color: rgb(238, 238, 238) rgb(238, 238, 238) rgb(238, 238, 238) rgba(0, 0, 0, 0); +border-style: solid; +border-width: 1.5em 0px 1.7em 1em; +content: ''; +} +.breadcrumb-alt > li > a::after { +position: absolute; +top: 50%; +right: -1em; +margin-top: -1.5em; +border-bottom: 1.5em solid rgba(0, 0, 0, 0); +border-left: 1em solid rgb(238, 238, 238); +border-top: 1.5em solid rgba(0, 0, 0, 0); +content: ''; +} +.right-side > .content-header > .breadcrumb > li > a { + color: #444; + text-decoration: none; +} +.right-side > .content-header > .breadcrumb > li > a > .fa, +.right-side > .content-header > .breadcrumb > li > a > .glyphicon, +.right-side > .content-header > .breadcrumb > li > a > .ion { + margin-right: 5px; +} +.right-side > .content-header > .breadcrumb > li + li:before { + content: '>\00a0'; +} +@media screen and (max-width: 767px) { + .right-side > .content-header > .breadcrumb { + position: relative; + margin-top: 5px; + top: 0; + right: 0; + float: none; + background: #efefef; + } +} +@media (max-width: 767px) { + .navbar .navbar-nav > li { + float: left; + } + .navbar-nav { + margin: 0; + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + line-height: 20px; + } + .navbar .navbar-right { + float: right; + } +} +@media screen and (max-width: 560px) { + body > .header { + position: relative; + } + body > .header .logo, + body > .header .navbar { + width: 100%; + float: none; + position: relative!important; + } + body > .header .navbar { + margin: 0; + } + body.fixed > .header { + position: fixed; + } + body.fixed > .wrapper, + body.fixed .sidebar-offcanvas { + margin-top: 100px!important; + } +} +/* + Component: Sidebar +-------------------------- +*/ +.sidebar { + margin-bottom: 5px; +} +.sidebar .sidebar-form input:focus { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + border-color: transparent!important; +} +.sidebar .sidebar-menu { + list-style: none; + margin: 0; + padding: 0; +} +.sidebar .sidebar-menu > li { + margin: 0; + padding: 0; +} +.sidebar .sidebar-menu > li > a { + padding: 12px 5px 12px 15px; + display: block; +} +.sidebar .sidebar-menu > li > a > .fa, +.sidebar .sidebar-menu > li > a > .glyphicon, +.sidebar .sidebar-menu > li > a > .ion { + width: 20px; +} +.sidebar .sidebar-menu .treeview-menu { + display: none; + list-style: none; + padding: 0; + margin: 0; +} +.sidebar .sidebar-menu .treeview-menu > li { + margin: 0; +} +.sidebar .sidebar-menu .treeview-menu > li > a { + padding: 8px 5px 8px 15px; + display: block; + font-size: 14px; + margin: 0px 0px; +} +.sidebar .sidebar-menu .treeview-menu > li > a > .fa, +.sidebar .sidebar-menu .treeview-menu > li > a > .glyphicon, +.sidebar .sidebar-menu .treeview-menu > li > a > .ion { + width: 20px; +} +.user-panel { + padding: 10px; +} +.user-panel:before, +.user-panel:after { + display: table; + content: " "; +} +.user-panel:after { + clear: both; +} +.user-panel > .image > img { + width: 45px; + height: 45px; +} +.user-panel > .info { + font-weight: 600; + padding: 5px 5px 5px 15px; + font-size: 14px; + line-height: 1; +} +.user-panel > .info > p { + margin-bottom: 9px; +} +.user-panel > .info > a { + text-decoration: none; + padding-right: 5px; + margin-top: 3px; + font-size: 11px; + font-weight: normal; +} +.user-panel > .info > a > .fa, +.user-panel > .info > a > .ion, +.user-panel > .info > a > .glyphicon { + margin-right: 3px; +} +/* + * Off Canvas + * -------------------------------------------------- + * Gives us the push menu effect + */ +@media screen and (max-width: 992px) { + .relative { + position: relative; + } + .row-offcanvas-right .sidebar-offcanvas { + right: -220px; + } + .row-offcanvas-left .sidebar-offcanvas { + left: -220px; + } + .row-offcanvas-right.active { + right: 220px; + } + .row-offcanvas-left.active { + left: 220px; + } + .sidebar-offcanvas { + left: 0; + } + body.fixed .sidebar-offcanvas { + margin-top: 50px; + left: -220px; + } + body.fixed .row-offcanvas-left.active .navbar { + left: 220px !important; + right: 0; + } + body.fixed .row-offcanvas-left.active .sidebar-offcanvas { + left: 0px; + } +} +/* + Dropdown menus +---------------------------- +*/ +/*Dropdowns in general*/ +.dropdown-menu { + -webkit-box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1); + box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.1); + z-index: 2300; +} +.dropdown-menu > li > a > .glyphicon, +.dropdown-menu > li > a > .fa, +.dropdown-menu > li > a > .ion { + margin-right: 10px; +} +.dropdown-menu > li > a:hover { + background-color: #3c8dbc; + color: #f9f9f9; +} +.dropdown-menu-right > li > a:hover { + background-color: #39435c; + color: #f9f9f9; +} +/*Drodown in navbars*/ +.skin-blue .navbar .dropdown-menu > li > a { + color: #444444; +} +/* + Navbar custom dropdown menu +------------------------------------ +*/ +.navbar-nav > .notifications-menu > .dropdown-menu, +.navbar-nav > .messages-menu > .dropdown-menu, +.navbar-nav > .tasks-menu > .dropdown-menu { + width: 260px; + padding: 0 0 0 0!important; + margin: 0!important; + top: 100%; + border: 1px solid #dfdfdf; + -webkit-border-radius: 4px !important; + -moz-border-radius: 4px !important; + border-radius: 4px !important; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li.header, +.navbar-nav > .messages-menu > .dropdown-menu > li.header, +.navbar-nav > .tasks-menu > .dropdown-menu > li.header { + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 0; + -webkit-border-bottom-left-radius: 0; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 0; + -moz-border-radius-bottomleft: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + background-color: #ffffff; + padding: 7px 10px; + border-bottom: 1px solid #f4f4f4; + color: #444444; + font-size: 14px; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li.header:after, +.navbar-nav > .messages-menu > .dropdown-menu > li.header:after, +.navbar-nav > .tasks-menu > .dropdown-menu > li.header:after { + bottom: 100%; + left: 92%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-color: rgba(255, 255, 255, 0); + border-bottom-color: #ffffff; + border-width: 7px; + margin-left: -7px; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a, +.navbar-nav > .messages-menu > .dropdown-menu > li.footer > a, +.navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a { + -webkit-border-top-left-radius: 0px; + -webkit-border-top-right-radius: 0px; + -webkit-border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -moz-border-radius-topleft: 0px; + -moz-border-radius-topright: 0px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; + font-size: 12px; + background-color: #f4f4f4; + padding: 7px 10px; + border-bottom: 1px solid #eeeeee; + color: #444444; + text-align: center; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li.footer > a:hover, +.navbar-nav > .messages-menu > .dropdown-menu > li.footer > a:hover, +.navbar-nav > .tasks-menu > .dropdown-menu > li.footer > a:hover { + background: #f4f4f4; + text-decoration: none; + font-weight: normal; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu, +.navbar-nav > .messages-menu > .dropdown-menu > li .menu, +.navbar-nav > .tasks-menu > .dropdown-menu > li .menu { + margin: 0; + padding: 0; + list-style: none; + overflow-x: hidden; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a, +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a, +.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a { + display: block; + white-space: nowrap; + /* Prevent text from breaking */ + border-bottom: 1px solid #f4f4f4; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a:hover, +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:hover, +.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a:hover { + background: #fafafa; + text-decoration: none; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a { + font-size: 12px; + color: #444444; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > i { + border-radius: 30px; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion { + font-size: 20px; + width: 50px; + text-align: center; + padding: 15px 0px; + margin-right: 5px; + /* Default background and font colors */ + background: #00c0ef; + color: #f9f9f9; + /* Fallback for browsers that doesn't support rgba */ + color: rgba(255, 255, 255, 0.7); +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon.danger, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa.danger, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion.danger { + background: #f56954; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon.warning, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa.warning, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion.warning { + background: #f39c12; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon.success, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa.success, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion.success { + background: #00a65a; +} +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .glyphicon.info, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .fa.info, +.navbar-nav > .notifications-menu > .dropdown-menu > li .menu > li > a > .ion.info { + background: #00c0ef; +} +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a { + margin: 0px; + line-height: 20px; + padding: 10px 5px 10px 5px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > div > img { + margin: auto 10px auto auto; + width: 40px; + height: 40px; + border: 1px solid #dddddd; +} +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 { + padding: 0; + margin: 0 0 0 45px; + color: #444444; + font-size: 15px; +} +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > h4 > small { + color: #999999; + font-size: 10px; + float: right; +} +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a > p { + margin: 0 0 0 45px; + font-size: 12px; + color: #888888; +} +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:before, +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after { + display: table; + content: " "; +} +.navbar-nav > .messages-menu > .dropdown-menu > li .menu > li > a:after { + clear: both; +} +.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a { + padding: 10px; +} +.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > h3 { + font-size: 14px; + padding: 0; + margin: 0 0 10px 0; + color: #666666; +} +.navbar-nav > .tasks-menu > .dropdown-menu > li .menu > li > a > .progress { + padding: 0; + margin: 0; +} +.navbar-nav > .user-menu > .dropdown-menu { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + padding: 0; + border-top-width: 0; + width: 225px; +} +.navbar-nav > .user-menu > .dropdown-menu:after { + bottom: 100%; + right: 10px; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-color: rgba(255, 255, 255, 0); + border-bottom-color: #f9fafc; + border-width: 10px; + margin-left: -10px; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header { + height: 175px; + padding: 10px; + background: #3c8dbc; + text-align: center; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header > img { + z-index: 5; + height: 90px; + width: 90px; + border: 8px solid; + border-color: transparent; + border-color: rgba(255, 255, 255, 0.2); +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p { + z-index: 5; + color: #f9f9f9; + color: rgba(255, 255, 255, 0.8); + font-size: 17px; + text-shadow: 2px 2px 3px #333333; + margin-top: 10px; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-header > p > small { + display: block; + font-size: 12px; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-body { + padding: 15px; + border-bottom: 1px solid #f4f4f4; + border-top: 1px solid #dddddd; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-body:before, +.navbar-nav > .user-menu > .dropdown-menu > li.user-body:after { + display: table; + content: " "; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-body:after { + clear: both; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-body > div > a { + color: #0073b7; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-footer { + background-color: #f9f9f9; + padding: 10px; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-footer:before, +.navbar-nav > .user-menu > .dropdown-menu > li.user-footer:after { + display: table; + content: " "; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-footer:after { + clear: both; +} +.navbar-nav > .user-menu > .dropdown-menu > li.user-footer .btn-default { + color: #666666; +} +/* Add fade animation to dropdown menus */ +.open > .dropdown-menu { + animation-name: fadeAnimation; + animation-duration: .7s; + animation-iteration-count: 1; + animation-timing-function: ease; + animation-fill-mode: forwards; + -webkit-animation-name: fadeAnimation; + -webkit-animation-duration: .7s; + -webkit-animation-iteration-count: 1; + -webkit-animation-timing-function: ease; + -webkit-animation-fill-mode: forwards; + -moz-animation-name: fadeAnimation; + -moz-animation-duration: .7s; + -moz-animation-iteration-count: 1; + -moz-animation-timing-function: ease; + -moz-animation-fill-mode: forwards; +} +@keyframes fadeAnimation { + from { + opacity: 0; + top: 120%; + } + to { + opacity: 1; + top: 100%; + } +} +@-webkit-keyframes fadeAnimation { + from { + opacity: 0; + top: 120%; + } + to { + opacity: 1; + top: 100%; + } +} +/* Fix dropdown menu for small screens to display correctly on small screens */ +@media screen and (max-width: 767px) { + .navbar-nav > .notifications-menu > .dropdown-menu, + .navbar-nav > .user-menu > .dropdown-menu, + .navbar-nav > .tasks-menu > .dropdown-menu, + .navbar-nav > .messages-menu > .dropdown-menu { + position: absolute; + top: 100%; + right: 0; + left: auto; + border-right: 1px solid #dddddd; + border-bottom: 1px solid #dddddd; + border-left: 1px solid #dddddd; + background: #ffffff; + } +} +/* Fix menu positions on xs screens to appear correctly and fully */ +@media screen and (max-width: 480px) { + .navbar-nav > .notifications-menu > .dropdown-menu > li.header, + .navbar-nav > .tasks-menu > .dropdown-menu > li.header, + .navbar-nav > .messages-menu > .dropdown-menu > li.header { + /* Remove arrow from the top */ + } + .navbar-nav > .notifications-menu > .dropdown-menu > li.header:after, + .navbar-nav > .tasks-menu > .dropdown-menu > li.header:after, + .navbar-nav > .messages-menu > .dropdown-menu > li.header:after { + border-width: 0px!important; + } + .navbar-nav > .tasks-menu > .dropdown-menu { + position: absolute; + right: -120px; + left: auto; + } + .navbar-nav > .notifications-menu > .dropdown-menu { + position: absolute; + right: -170px; + left: auto; + } + .navbar-nav > .messages-menu > .dropdown-menu { + position: absolute; + right: -210px; + left: auto; + } +} +/* + All form elements including input, select, textarea etc. +----------------------------------------------------------------- +*/ +.form-control { + /*-webkit-border-radius: 3px !important; + -moz-border-radius: 3px !important; + border-radius: 3px !important;*/ + box-shadow: none; +} +.form-control:focus { + border-color: #3c8dbc !important; + box-shadow: none; +} +.form-group.has-success label { + color: #00a65a; +} +.form-group.has-success .form-control { + border-color: #00a65a !important; + box-shadow: none; +} +.form-group.has-warning label { + color: #f39c12; +} +.form-group.has-warning .form-control { + border-color: #f39c12 !important; + box-shadow: none; +} +.form-group.has-error label { + color: #f56954; +} +.form-group.has-error .form-control { + border-color: #f56954 !important; + box-shadow: none; +} +/* Input group */ +.input-group .input-group-addon { + border-radius: 0; + background-color: #f4f4f4; +} +/* button groups */ +.btn-group-vertical .btn.btn-flat:first-of-type, +.btn-group-vertical .btn.btn-flat:last-of-type { + border-radius: 0; +} +/* Checkbox and radio inputs */ +.checkbox, +.radio { + /*padding-left: 0;*/ +} +/* + Compenent: Progress bars +-------------------------------- +*/ +/* size variation */ +.progress.sm { + height: 10px; +} +.progress.xs { + height: 7px; +} +/* Vertical bars */ +.progress.vertical { + position: relative; + width: 30px; + height: 200px; + display: inline-block; + margin-right: 10px; +} +.progress.vertical > .progress-bar { + width: 100%!important; + position: absolute; + bottom: 0; +} +.progress.vertical.sm { + width: 20px; +} +.progress.vertical.xs { + width: 10px; +} +/* Remove margins from progress bars when put in a table */ +.table tr > td .progress { + margin: 0; +} +.progress-bar-light-blue, +.progress-bar-primary { + background-color: #3c8dbc; +} +.progress-striped .progress-bar-light-blue, +.progress-striped .progress-bar-primary { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-green, +.progress-bar-success { + background-color: #00a65a; +} +.progress-striped .progress-bar-green, +.progress-striped .progress-bar-success { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-aqua, +.progress-bar-info { + background-color: #00c0ef; +} +.progress-striped .progress-bar-aqua, +.progress-striped .progress-bar-info { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-yellow, +.progress-bar-warning { + background-color: #f39c12; +} +.progress-striped .progress-bar-yellow, +.progress-striped .progress-bar-warning { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +.progress-bar-red, +.progress-bar-danger { + background-color: #f56954; +} +.progress-striped .progress-bar-red, +.progress-striped .progress-bar-danger { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} +/* + Component: Small boxes +*/ +.small-box { + position: relative; + display: block; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + margin-bottom: 15px; +} +.small-box > .inner { + padding: 10px; +} +.small-box > .small-box-footer { + position: relative; + text-align: center; + padding: 3px 0; + color: #fff; + color: rgba(255, 255, 255, 0.8); + display: block; + z-index: 10; + background: rgba(0, 0, 0, 0.1); + text-decoration: none; +} +.small-box > .small-box-footer:hover { + color: #fff; + background: rgba(0, 0, 0, 0.15); +} +.small-box h3 { + font-size: 38px; + font-weight: bold; + margin: 0 0 10px 0; + white-space: nowrap; + padding: 0; +} +.small-box p { + font-size: 15px; +} +.small-box p > small { + display: block; + color: #f9f9f9; + font-size: 13px; + margin-top: 5px; +} +.small-box h3, +.small-box p { + z-index: 5px; +} +.small-box .icon { + position: absolute; + top: auto; + bottom: 5px; + right: 5px; + z-index: 0; + font-size: 90px; + color: rgba(0, 0, 0, 0.15); +} +.small-box:hover { + text-decoration: none; + color: #f9f9f9; +} +.small-box:hover .icon { + /*animation-name: tansformAnimation; + animation-duration: .5s; + animation-iteration-count: 1; + animation-timing-function: ease; + animation-fill-mode: forwards; + -webkit-animation-name: tansformAnimation; + -webkit-animation-duration: .5s; + -webkit-animation-iteration-count: 1; + -webkit-animation-timing-function: ease; + -webkit-animation-fill-mode: forwards; + -moz-animation-name: tansformAnimation; + -moz-animation-duration: .5s; + -moz-animation-iteration-count: 1; + -moz-animation-timing-function: ease; + -moz-animation-fill-mode: forwards;*/ +} +@keyframes tansformAnimation { + from { + font-size: 90px; + } + to { + font-size: 100px; + } +} +@-webkit-keyframes tansformAnimation { + from { + font-size: 90px; + } + to { + font-size: 100px; + } +} +@media screen and (max-width: 480px) { + .small-box { + text-align: center; + } + .small-box .icon { + display: none; + } + .small-box p { + font-size: 12px; + } +} +/* + component: Boxes +------------------------- +*/ +.box { + position: relative; + background: #ffffff; + /*border-top: 2px solid #c1c1c1;*/ + margin-bottom: 20px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + width: 100%; + /*box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1);*/ +} +.box.box-primary { + border-top-color: #3c8dbc; +} +.box.box-info { + border-top-color: #00c0ef; +} +.box.box-danger { + border-top-color: #f56954; +} +.box.box-warning { + border-top-color: #f39c12; +} +.box.box-success { + border-top-color: #00a65a; +} +.box.height-control .box-body { + max-height: 300px; + overflow: auto; +} +.box .box-header { + position: relative; + -webkit-border-top-left-radius: 3px; + -webkit-border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 0; + -webkit-border-bottom-left-radius: 0; + -moz-border-radius-topleft: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 0; + -moz-border-radius-bottomleft: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + border-bottom: 0px solid #f4f4f4; + color: #444; +} +.box .box-header:before, +.box .box-header:after { + display: table; + content: " "; +} +.box .box-header:after { + clear: both; +} +.box .box-header > .fa, +.box .box-header > .glyphicon, +.box .box-header > .ion, +.box .box-header .box-title { + display: inline-block; + padding: 10px 10px 10px 10px; + margin: 0; + font-size: 20px; + font-weight: 400; + float: left; + cursor: default; +} +.box .box-header a { + color: #444; +} +.box .box-header > .box-tools { + padding: 5px 10px 5px 5px; +} +.box .box-body { + padding: 10px; + -webkit-border-top-left-radius: 0; + -webkit-border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 3px; + -webkit-border-bottom-left-radius: 3px; + -moz-border-radius-topleft: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomright: 3px; + -moz-border-radius-bottomleft: 3px; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.box .box-body > table, +.box .box-body > .table { + margin-bottom: 0; +} +.box .box-body.chart-responsive { + width: 100%; + overflow: hidden; +} +.box .box-body > .chart { + position: relative; + overflow: hidden; + width: 100%; +} +.box .box-body > .chart svg, +.box .box-body > .chart canvas { + width: 100%!important; +} +.box .box-body .fc { + margin-top: 5px; +} +.box .box-body .fc-header-title h2 { + font-size: 15px; + line-height: 1.6em; + color: #666; + margin-left: 10px; +} +.box .box-body .fc-header-right { + padding-right: 10px; +} +.box .box-body .fc-header-left { + padding-left: 10px; +} +.box .box-body .fc-widget-header { + background: #fafafa; + box-shadow: inset 0px -3px 1px rgba(0, 0, 0, 0.02); +} +.box .box-body .fc-grid { + width: 100%; + border: 0; +} +.box .box-body .fc-widget-header:first-of-type, +.box .box-body .fc-widget-content:first-of-type { + border-left: 0; + border-right: 0; +} +.box .box-body .fc-widget-header:last-of-type, +.box .box-body .fc-widget-content:last-of-type { + border-right: 0; +} +.box .box-body .table { + margin-bottom: 0; +} +.box .box-body .full-width-chart { + margin: -19px; +} +.box .box-body.no-padding .full-width-chart { + margin: -9px; +} +.box .box-footer { + border-top: 1px solid #f4f4f4; + -webkit-border-top-left-radius: 0; + -webkit-border-top-right-radius: 0; + -webkit-border-bottom-right-radius: 3px; + -webkit-border-bottom-left-radius: 3px; + -moz-border-radius-topleft: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomright: 3px; + -moz-border-radius-bottomleft: 3px; + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; + padding: 10px; + background-color: #ffffff; +} +.box.box-solid { + border-top: 0px; +} +.box.box-solid > .box-header { + padding-bottom: 0px!important; +} +.box.box-solid > .box-header .btn.btn-default { + background: transparent; +} +.box.box-solid.box-primary > .box-header { + color: #fff; + background: #3c8dbc; + background-color: #3c8dbc; +} +.box.box-solid.box-primary > .box-header a { + color: #444; +} +.box.box-solid.box-info > .box-header { + color: #fff; + background: #00c0ef; + background-color: #00c0ef; +} +.box.box-solid.box-info > .box-header a { + color: #444; +} +.box.box-solid.box-danger > .box-header { + color: #fff; + background: #f56954; + background-color: #f56954; +} +.box.box-solid.box-danger > .box-header a { + color: #444; +} +.box.box-solid.box-warning > .box-header { + color: #fff; + background: #f39c12; + background-color: #f39c12; +} +.box.box-solid.box-warning > .box-header a { + color: #444; +} +.box.box-solid.box-success > .box-header { + color: #fff; + background: #00a65a; + background-color: #00a65a; +} +.box.box-solid.box-success > .box-header a { + color: #444; +} +.box.box-solid > .box-header > .box-tools .btn { + border: 0; + box-shadow: none; +} +.box.box-solid.collapsed-box .box-header { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} +.box.box-solid[class*='bg'] > .box-header { + color: #fff; +} +.box .box-group > .box { + margin-bottom: 5px; +} +.box .knob-label { + text-align: center; + color: #333; + font-weight: 100; + font-size: 12px; + margin-bottom: 0.3em; +} +.box .todo-list { + margin: 0; + padding: 0px 0px; + list-style: none; +} +.box .todo-list > li { + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + padding: 10px; + background: #f3f4f5; + margin-bottom: 2px; + border-left: 2px solid #e6e7e8; + color: #444; +} +.box .todo-list > li:last-of-type { + margin-bottom: 0; +} +.box .todo-list > li.danger { + border-left-color: #f56954; +} +.box .todo-list > li.warning { + border-left-color: #f39c12; +} +.box .todo-list > li.info { + border-left-color: #00c0ef; +} +.box .todo-list > li.success { + border-left-color: #00a65a; +} +.box .todo-list > li.primary { + border-left-color: #3c8dbc; +} +.box .todo-list > li > input[type='checkbox'] { + margin: 0 10px 0 5px; +} +.box .todo-list > li .text { + display: inline-block; + margin-left: 5px; + font-weight: 600; +} +.box .todo-list > li .label { + margin-left: 10px; + font-size: 9px; +} +.box .todo-list > li .tools { + display: none; + float: right; + color: #f56954; +} +.box .todo-list > li .tools > .fa, +.box .todo-list > li .tools > .glyphicon, +.box .todo-list > li .tools > .ion { + margin-right: 5px; + cursor: pointer; +} +.box .todo-list > li:hover .tools { + display: inline-block; +} +.box .todo-list > li.done { + color: #999; +} +.box .todo-list > li.done .text { + text-decoration: line-through; + font-weight: 500; +} +.box .todo-list > li.done .label { + background: #eaeaec !important; +} +.box .todo-list .handle { + display: inline-block; + cursor: move; + margin: 0 5px; +} +/*Timeline chat*/ + +.chat-form { + margin-top: 25px; + clear: both; +} + +.chat-form .input-cont { + margin-bottom: 10px; +} + +.chat-form .input-cont input { + margin-bottom: 0px; +} + +.chat-form .input-cont input{ + border: 1px solid #d3d3d3 !important; + margin-top:0; + min-height: 45px; +} + +.chat-form .input-cont input { + background-color: #fff !important; + margin-bottom: 5px; + /* border-radius: 4px; */ +} + +.chat-features a { + margin-left: 10px; +} + +.chat-features a i{ + color: #d0d0d0; +} + + +.timeline-messages, .msg-time-chat , .timeline-messages .msg-in, .timeline-messages .msg-out { + position: relative; + border-radius: 2px; +} + +.timeline-heading { + padding:8px 15px; +} +.timeline-messages .msg-in .arrow { + /*border-right: 8px solid #F4F4F4 !important;*/ +} +.timeline-messages .msg-in .arrow { + border-bottom: 8px solid transparent; + border-top: 8px solid transparent; + display: block; + height: 0; + left: -8px; + position: absolute; + top: 13px; + width: 0; +} + +.timeline-messages .msg-out .arrow { + /*border-right: 8px solid #41cac0 !important;*/ +} +.timeline-messages .msg-out .arrow { + border-bottom: 8px solid transparent; + border-top: 8px solid transparent; + display: block; + height: 0; + left: -8px; + position: absolute; + top: 13px; + width: 0; +} + +.msg-time-chat:first-child:before { + margin-top: 16px; +} +.msg-time-chat:before { + background:#CCCCCC; + border: 2px solid #FAFAFA; + border-radius: 100px; + -moz-border-radius: 100px; + -webkit-border-radius: 100px; + height: 14px; + margin: 23px 0 0 -6px; + width: 14px; +} +.msg-time-chat:hover:before { + background: #41cac0; +} +.msg-time-chat:first-child { + padding-top: 0; +} +.message-img-in { + float: left; + margin-right: 10px; + overflow: hidden; +} +.message-img-in img { + display: block; + height: 50px; + width: 50px; + border: 1px solid #eee; +} + +.message-img-out { + float: right; + margin-left: 10px; + overflow: hidden; +} +.message-img-out img { + display: block; + height: 50px; + width: 50px; + border: 1px solid #eee; +} +.message-body-in { + /*margin-left: 80px;*/ +} +.msg-time-chat .msg-in .text { + /* border: 1px solid #e3e6ed; */ + padding: 10px; + border-radius: 4px; + -webkit-border-radius: 4px; + background-color: #F4f4f4; + display: inline-block; +} + +.message-body-out { + /*margin-right: 80px;*/ +} + +.msg-time-chat .msg-out .text { + /* border: 1px solid #e3e6ed; */ + padding: 10px; + border-radius: 4px; + + background-color: #F1F5FD; +} +.msg-time-chat p { + margin: 0; +} +.msg-time-chat .attribution { + font-size: 11px; + margin: 0px 0 5px; +} +.msg-time-chat { + overflow: hidden; + padding:8px 0; +} + +.msg-in a, .msg-in a:hover{ + color: #acacac; + text-decoration: none; + border-radius: 4px; + -webkit-border-radius: 4px; + margin-right: 10px; + font-weight: 400; + font-size: 13px; +} +.msg-out a, .msg-out a:hover{ + color: #288f98; + text-decoration: none; + border-radius: 4px; + -webkit-border-radius: 4px; + margin-right: 10px; + font-weight: 400; + font-size: 13px; +} + + + + +/*.box .chat { + padding: 5px 20px 5px 10px; +} +.box .chat .item { + margin-bottom: 10px; +} +.box .chat .item:before, +.box .chat .item:after { + display: table; + content: " "; +} +.box .chat .item:after { + clear: both; +} +.box .chat .item > img { + width: 40px; + height: 40px; + border: 2px solid transparent; + -webkit-border-radius: 50% !important; + -moz-border-radius: 50% !important; + border-radius: 50% !important; +} +.box .chat .item > img.online { + border: 2px solid #00a65a; +} +.box .chat .item > img.offline { + border: 2px solid #f56954; +} +.box .chat .item > .message { + margin-left: 55px; + margin-top: -40px; +} +.box .chat .item > .message > .name { + display: block; + font-weight: 600; +} +.box .chat .item > .attachment { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + background: #f0f0f0; + margin-left: 65px; + margin-right: 15px; + padding: 10px; +} +.box .chat .item > .attachment > h4 { + margin: 0 0 5px 0; + font-weight: 600; + font-size: 14px; +} +.box .chat .item > .attachment > p, +.box .chat .item > .attachment > .filename { + font-weight: 600; + font-size: 13px; + font-style: italic; + margin: 0; +} +.box .chat .item > .attachment:before, +.box .chat .item > .attachment:after { + display: table; + content: " "; +} +.box .chat .item > .attachment:after { + clear: both; +}*/ +.box > .overlay, +.box > .loading-img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.box > .overlay { + z-index: 1010; + background: rgba(255, 255, 255, 0.7); +} +.box > .overlay.dark { + background: rgba(0, 0, 0, 0.5); +} +.box > .loading-img { + z-index: 1020; + background: transparent url('../img/ajax-loader1.gif') 50% 50% no-repeat; +} + +/* + Component: Buttons +------------------------- +*/ + + +.btn { + font-weight: 500; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + border: 1px solid transparent; +} +.btn.btn-default { + background-color: #fafafa; + color: #666; + border-color: #ddd; + border-bottom-color: #ddd; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + -ms-transition: all .3s ease; + -o-transition: all .3s ease; + transition: all .3s ease; +} +.btn.btn-default:hover, +.btn.btn-default:active, +.btn.btn-default.hover { + background-color: #f4f4f4!important; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + -ms-transition: all .3s ease; + -o-transition: all .3s ease; + transition: all .3s ease; +} +.btn.btn-default.btn-flat { + border-bottom-color: #d9dadc; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + -ms-transition: all .3s ease; + -o-transition: all .3s ease; + transition: all .3s ease; +} +.btn.btn-primary { + background-color: #4697ce; + border: none; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + -ms-transition: all .3s ease; + -o-transition: all .3s ease; + transition: all .3s ease; +} +.btn.btn-primary:hover, +.btn.btn-primary:active, +.btn.btn-primary.hover { + background-color: #2f7db2; + border: none; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + -ms-transition: all .3s ease; + -o-transition: all .3s ease; + transition: all .3s ease; +} + +.file-select{ + /*width: 70px;*/ + /*display: inline-block;*/ + margin-bottom: 0; + color:#fff; + text-align: center; + white-space: nowrap; + cursor: pointer; + font-size: 12px; + background-color: #27c24c; + border: none; + transition: all .3s ease; + font-weight: 500; + border-radius: 3px; +} + +.btn.btn-success { + background-color: #27c24c; + border: none; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + -ms-transition: all .3s ease; + -o-transition: all .3s ease; + transition: all .3s ease; +} +.btn.btn-success:hover, +.btn.btn-success:active, +.btn.btn-success.hover { + background-color: #23ad44; + border: none; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + -ms-transition: all .3s ease; + -o-transition: all .3s ease; + transition: all .3s ease; +} +.btn.btn-info { + background-color: #23b7e5; + border: none; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + -ms-transition: all .3s ease; + -o-transition: all .3s ease; + transition: all .3s ease; +} +.btn.btn-info:hover, +.btn.btn-info:active, +.btn.btn-info.hover { + background-color: #19a9d5; + border: none; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + -ms-transition: all .3s ease; + -o-transition: all .3s ease; + transition: all .3s ease; +} +.btn.btn-danger { + background-color: #f05050; + border: none; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + -ms-transition: all .3s ease; + -o-transition: all .3s ease; + transition: all .3s ease; +} +.btn.btn-danger:hover, +.btn.btn-danger:active, +.btn.btn-danger.hover { + background-color: #ee3939; + border: none; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + -ms-transition: all .3s ease; + -o-transition: all .3s ease; + transition: all .3s ease; +} +.btn.btn-warning { + background-color: #fad733; + border: none; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + -ms-transition: all .3s ease; + -o-transition: all .3s ease; + transition: all .3s ease; +} +.btn.btn-warning:hover, +.btn.btn-warning:active, +.btn.btn-warning.hover { + background-color: #f9d21a; + border: none; + -webkit-transition: all .3s ease; + -moz-transition: all .3s ease; + -ms-transition: all .3s ease; + -o-transition: all .3s ease; + transition: all .3s ease; +} +.btn-round { + border-radius: 30px; + -webkit-border-radius: 30px; + -moz-border-radius: 30px; +} +/*.btn-group .btn.btn-success { border: 1px solid #7ab03f } +.btn-group .btn.btn-info { border: 1px solid #2fa084 } +.btn-group .btn.btn-danger { border: 1px solid #d13a24 } +.btn-group .btn.btn-warning { border: 1px solid #efa50b } +.btn-group-vertical .btn.btn-success { border: 1px solid #7ab03f } +.btn-group-vertical .btn.btn-info { border: 1px solid #2fa084 } +.btn-group-vertical .btn.btn-danger { border: 1px solid #d13a24 } +.btn-group-vertical .btn.btn-warning { border: 1px solid #efa50b }*/ +.open .dropdown-toggle.btn-warning { + background-color: #f9d21a; + border-color: #f9d21a; +} +.open .dropdown-toggle.btn-info { + background-color: #37a3df; + border-color: #37a3df; +} +.btn.btn-flat { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + border-width: 1px; +} +.btn:active { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn:focus { outline: none } +.btn.btn-file { + position: relative; + width: 120px; + height: 35px; + overflow: hidden; +} +.btn.btn-file > input[type='file'] { + display: block !important; + width: 100% !important; + height: 35px !important; + opacity: 0 !important; + position: absolute; + top: -10px; + cursor: pointer; +} +.btn.btn-app { + position: relative; + padding: 15px 5px; + margin: 0 0 10px 10px; + min-width: 80px; + height: 60px; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + text-align: center; + color: #666; + border: 1px solid #ddd; + background-color: #fafafa; + font-size: 12px; +} +.btn.btn-app > .fa, +.btn.btn-app > .glyphicon, +.btn.btn-app > .ion { + font-size: 20px; + display: block; +} +.btn.btn-app:hover { + background: #f4f4f4; + color: #444; + border-color: #aaa; +} +.btn.btn-app:active, +.btn.btn-app:focus { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} +.btn.btn-app > .badge { + position: absolute; + top: -3px; + right: -10px; + font-size: 10px; + font-weight: 400; +} +.btn.btn-social-old { + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + opacity: 0.9; + padding: 0; +} +.btn.btn-social-old > .fa { + padding: 10px 0; + width: 40px; +} +.btn.btn-social-old > .fa + span { border-left: 1px solid rgba(255, 255, 255, 0.3) } +.btn.btn-social-old span { padding: 10px } +.btn.btn-social-old:hover { opacity: 1 } +.btn.btn-circle { + width: 30px; + height: 30px; + line-height: 30px; + padding: 0; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; +} +/* Background colors */ +/*.bg-red, +.bg-yellow, +.bg-aqua, +.bg-blue, +.bg-light-blue, +.bg-green, +.bg-navy, +.bg-teal, +.bg-olive, +.bg-lime, +.bg-orange, +.bg-fuchsia, +.bg-purple, +.bg-maroon, +.bg-black { color: #f9f9f9 !important } +.bg-gray { background-color: #eaeaec !important } +.bg-black { background-color: #222222 !important } +.bg-red { background-color: #f56954 !important } +.bg-yellow { background-color: #f39c12 !important } +.bg-aqua { background-color: #00c0ef !important } +.bg-blue { background-color: #0073b7 !important } +.bg-light-blue { background-color: #3c8dbc !important } +.bg-green { background-color: #00a65a !important } +.bg-navy { background-color: #001f3f !important } +.bg-teal { background-color: #39cccc !important } +.bg-olive { background-color: #16a085 !important } +.bg-lime { background-color: #01ff70 !important } +.bg-orange { background-color: #f0934e !important } +.bg-fuchsia { background-color: #f012be !important } +.bg-purple { background-color: #932ab6 !important } +.bg-maroon { background-color: #85144b !important }*/ +/* + Component: callout +------------------------ +*/ +.callout { + margin: 0 0 20px 0; + padding: 15px 30px 15px 15px; + border-left: 5px solid #eee; +} +.callout h4 { + margin-top: 0; +} +.callout p:last-child { + margin-bottom: 0; +} +.callout code, +.callout .highlight { + background-color: #fff; +} +.callout.callout-danger { + background-color: #fcf2f2; + border-color: #dFb5b4; +} +.callout.callout-warning { + background-color: #fefbed; + border-color: #f1e7bc; +} +.callout.callout-info { + background-color: #f0f7fd; + border-color: #d0e3f0; +} +.callout.callout-danger h4 { + color: #B94A48; +} +.callout.callout-warning h4 { + color: #C09853; +} +.callout.callout-info h4 { + color: #3A87AD; +} +/* + Component: alert +------------------------ +*/ +.alert { + /*padding-left: 30px; + margin-left: 15px;*/ + position: relative; + border-radius: 2px; + border:none; +} +.alert > .fa, +.alert > .glyphicon { + position: absolute; + left: -15px; + top: -15px; + width: 35px; + height: 35px; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + line-height: 35px; + text-align: center; + background: inherit; + border: inherit; +} +/* + Component: Navs +*/ +/* NAV PILLS */ +.nav.nav-pills > li > a { + border-top: 3px solid transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + color: #444; +} +.nav.nav-pills > li > a > .fa, +.nav.nav-pills > li > a > .glyphicon, +.nav.nav-pills > li > a > .ion { + margin-right: 5px; +} +.nav.nav-pills > li.active > a, +.nav.nav-pills > li.active > a:hover { + background-color: #f6f6f6; + border-top-color: #3c8dbc; + color: #444; +} +.nav.nav-pills > li.active > a { + font-weight: 600; +} +.nav.nav-pills > li > a:hover { + background-color: #f6f6f6; +} +.nav.nav-pills.nav-stacked > li > a { + border-top: 0; + border-left: 3px solid transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + color: #444; +} +.nav.nav-pills.nav-stacked > li > a:hover{ + background-color: #f6f6f6; + border-left-color: #3c8dbc; +} +.nav.nav-pills.nav-stacked > li.active > a, +.nav.nav-pills.nav-stacked > li.active > a:hover { + background-color: #f6f6f6; + border-left-color: #3c8dbc; + color: #444; +} +.nav.nav-pills.nav-stacked > li.header { + border-bottom: 1px solid #ddd; + color: #777; + margin-bottom: 10px; + padding: 5px 10px; + text-transform: uppercase; +} +/* NAV TABS */ +.nav-tabs-custom { + margin-bottom: 20px; + background: #fff; + /*box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1);*/ +} +.nav-tabs-custom > .nav-tabs { + margin: 0; + border-bottom-color: #f4f4f4; +} +.nav-tabs-custom > .nav-tabs > li { + border-top: 3px solid transparent; + margin-bottom: -2px; + margin-right: 5px; +} +.nav-tabs-custom > .nav-tabs > li > a { + -webkit-border-radius: 0 !important; + -moz-border-radius: 0 !important; + border-radius: 0 !important; +} +.nav-tabs-custom > .nav-tabs > li > a, +.nav-tabs-custom > .nav-tabs > li > a:hover { + background: transparent; + margin: 0; +} +.nav-tabs-custom > .nav-tabs > li:not(.active) > a:hover, +.nav-tabs-custom > .nav-tabs > li:not(.active) > a:focus, +.nav-tabs-custom > .nav-tabs > li:not(.active) > a:active { + border-color: transparent; +} +.nav-tabs-custom > .nav-tabs > li.active { + border-top-color: #3c8dbc; +} +.nav-tabs-custom > .nav-tabs > li.active > a, +.nav-tabs-custom > .nav-tabs > li.active:hover > a { + background-color: #fff; +} +.nav-tabs-custom > .nav-tabs > li.active > a { + border-top: 0; + border-left-color: #f4f4f4; + border-right-color: #f4f4f4; +} +.nav-tabs-custom > .nav-tabs > li:first-of-type { + margin-left: 0px; +} +.nav-tabs-custom > .nav-tabs > li:first-of-type.active > a { + border-left-width: 0; +} +.nav-tabs-custom > .nav-tabs.pull-right { + float: none!important; +} +.nav-tabs-custom > .nav-tabs.pull-right > li { + float: right; +} +.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type { + margin-right: 0px; +} +.nav-tabs-custom > .nav-tabs.pull-right > li:first-of-type.active > a { + border-left-width: 1px; + border-right-width: 0px; +} +.nav-tabs-custom > .nav-tabs > li.header { + font-weight: 400; + line-height: 35px; + padding: 0 10px; + font-size: 20px; + color: #444; + cursor: default; +} +.nav-tabs-custom > .nav-tabs > li.header > .fa, +.nav-tabs-custom > .nav-tabs > li.header > .glyphicon, +.nav-tabs-custom > .nav-tabs > li.header > .ion { + margin-right: 10px; +} +.nav-tabs-custom > .tab-content { + background: #fff; + padding: 10px; +} +/* Nav tabs bottom */ +.tabs-bottom.nav-3 li a { + width: 3333.33333333% !important; +} +.tabs-bottom li a { + border: 0; +} +/* PAGINATION */ +.pagination > li > a { + background: #fafafa; + color: #666; + /*-webkit-box-shadow: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.09); + -moz-box-shadow: inset 0px -2px 0px 0px rgba(0, 0, 0, 0.09); + box-shadow: inset 0px -1px 0px 0px rgba(0, 0, 0, 0.09);*/ +} +.pagination > li:first-of-type a, +.pagination > li:last-of-type a { + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; +} +/* + Component: Mailbox +*/ +.mail-box aside { +display: table-cell; +float: none; +height: 100%; +padding: 0; +vertical-align: top; +} +.mailbox .table-mailbox { + border-left: 1px solid #ddd; + border-right: 1px solid #ddd; + border-bottom: 1px solid #ddd; +} +.mailbox .table-mailbox tr.unread > td { + background-color: rgba(0, 0, 0, 0.05); + color: #000; + font-weight: 600; +} +.mailbox .table-mailbox tr > td > .fa.fa-star, +.mailbox .table-mailbox tr > td > .fa.fa-star-o, +.mailbox .table-mailbox tr > td > .glyphicon.glyphicon-star, +.mailbox .table-mailbox tr > td > .glyphicon.glyphicon-star-empty { + color: #f39c12; + cursor: pointer; +} +.mailbox .table-mailbox tr > td.small-col { + width: 30px; +} +.mailbox .table-mailbox tr > td.name { + width: 150px; + font-weight: 600; +} +.mailbox .table-mailbox tr > td.time { + text-align: right; + width: 100px; +} +.mailbox .table-mailbox tr > td { + white-space: nowrap; +} +.mailbox .table-mailbox tr > td > a { + color: #444; +} +@media screen and (max-width: 767px) { + .mailbox .nav-stacked > li:not(.header) { + float: left; + width: 50%; + } + .mailbox .nav-stacked > li:not(.header).header { + border: 0!important; + } + .mailbox .search-form { + margin-top: 10px; + } +} + + + +/* + Skins + ----- +*/ +/* + Skin Blue + --------- +*/ +/* skin-blue navbar */ +.skin-blue .navbar { + background-color: #3c8dbc; +} +.skin-blue .navbar .nav a { + color: rgba(255, 255, 255, 0.8); +} +.skin-blue .navbar .nav > li > a:hover, +.skin-blue .navbar .nav > li > a:active, +.skin-blue .navbar .nav > li > a:focus, +.skin-blue .navbar .nav .open > a, +.skin-blue .navbar .nav .open > a:hover, +.skin-blue .navbar .nav .open > a:focus { + background: rgba(0, 0, 0, 0.1); + color: #f6f6f6; +} +.skin-blue .navbar .navbar-right > .nav { + margin-right: 10px; +} +.skin-blue .navbar .sidebar-toggle .icon-bar { + background: rgba(255, 255, 255, 0.8); +} +.skin-blue .navbar .sidebar-toggle:hover .icon-bar { + background: #f6f6f6 !important; +} +/* skin-blue logo */ +.skin-blue .logo { + background-color: #367fa9; + color: #f9f9f9; +} +.skin-blue .logo > a { + color: #f9f9f9; +} +.skin-blue .logo:hover { + /*background: #357ca5;*/ + /*color:#fff;*/ +} +/* skin-blue content header */ +.skin-blue .right-side > .content-header { + background: #fbfbfb; + box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1); +} +/* Skin-blue user panel */ +.skin-blue .user-panel > .image > img { + border: 1px solid #dfdfdf; +} +.skin-blue .user-panel > .info, +.skin-blue .user-panel > .info > a { + color: #555555; +} +/* skin-blue sidebar */ +.skin-blue .sidebar { + border-bottom: 1px solid #fff; +} +.skin-blue .sidebar > .sidebar-menu > li { + border-top: 1px solid #fff; + border-bottom: 1px solid #dbdbdb; +} +.skin-blue .sidebar > .sidebar-menu > li:first-of-type { + border-top: 1px solid #dbdbdb; +} +.skin-blue .sidebar > .sidebar-menu > li:first-of-type > a { + border-top: 1px solid #fff; +} +.skin-blue .sidebar > .sidebar-menu > li > a { + margin-right: 1px; +} +.skin-blue .sidebar > .sidebar-menu > li > a:hover, +.skin-blue .sidebar > .sidebar-menu > li.active > a { + color: #222; + background: #f9f9f9; +} +.skin-blue .sidebar > .sidebar-menu > li > .treeview-menu { + margin: 0 1px; + background: #f9f9f9; +} +.skin-blue .left-side { + background: #f4f4f4; + -webkit-box-shadow: inset -3px 0px 8px -4px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset -3px 0px 8px -4px rgba(0, 0, 0, 0.1); + box-shadow: inset -3px 0px 8px -4px rgba(0, 0, 0, 0.07); +} +.skin-blue .sidebar a { + color: #555555; +} +.skin-blue .sidebar a:hover { + text-decoration: none; +} +.skin-blue .treeview-menu > li > a { + color: #777; +} +.skin-blue .treeview-menu > li.active > a, +.skin-blue .treeview-menu > li > a:hover { + color: #111; +} +.skin-blue .sidebar-form { + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + border: 1px solid #dbdbdb; + margin: 10px 10px; +} +.skin-blue .sidebar-form input[type="text"], +.skin-blue .sidebar-form .btn { + box-shadow: none; + background-color: #fafafa; + border: 1px solid #fafafa; + height: 35px; +} +.skin-blue .sidebar-form input[type="text"] { + color: #666; + -webkit-border-top-left-radius: 2px !important; + -webkit-border-top-right-radius: 0 !important; + -webkit-border-bottom-right-radius: 0 !important; + -webkit-border-bottom-left-radius: 2px !important; + -moz-border-radius-topleft: 2px !important; + -moz-border-radius-topright: 0 !important; + -moz-border-radius-bottomright: 0 !important; + -moz-border-radius-bottomleft: 2px !important; + border-top-left-radius: 2px !important; + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; + border-bottom-left-radius: 2px !important; +} +.skin-blue .sidebar-form input[type="text"]:focus, +.skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { + background-color: #fff; + color: #666; +} +.skin-blue .sidebar-form input[type="text"]:focus + .input-group-btn .btn { + border-left-color: #fff; +} +.skin-blue .sidebar-form .btn { + color: #999; + -webkit-border-top-left-radius: 0 !important; + -webkit-border-top-right-radius: 2px !important; + -webkit-border-bottom-right-radius: 2px !important; + -webkit-border-bottom-left-radius: 0 !important; + -moz-border-radius-topleft: 0 !important; + -moz-border-radius-topright: 2px !important; + -moz-border-radius-bottomright: 2px !important; + -moz-border-radius-bottomleft: 0 !important; + border-top-left-radius: 0 !important; + border-top-right-radius: 2px !important; + border-bottom-right-radius: 2px !important; + border-bottom-left-radius: 0 !important; +} +/* + Skin Black + -------- +*/ +/* skin-black navbar */ +.skin-black .navbar { + background-color: #ffffff; + border-bottom: 1px solid #eee; +} +.skin-black .navbar .nav a { + color: #333333; +} +.skin-black .navbar .nav > li > a:hover, +.skin-black .navbar .nav > li > a:active, +.skin-black .navbar .nav > li > a:focus, +.skin-black .navbar .nav .open > a, +.skin-black .navbar .nav .open > a:hover, +.skin-black .navbar .nav .open > a:focus { + background: #39435C; + color: #fff; + padding-bottom: 14px; +} +.skin-black .navbar .navbar-right > .nav { + margin-right: 10px; +} +.skin-black .navbar .sidebar-toggle .icon-bar { + background: #333333; +} +.skin-black .navbar .sidebar-toggle:hover .icon-bar { + background: #999999 !important; +} +/* skin-black logo */ +.skin-black .logo { + background-color: #283744; + color: #f9f9f9; +} +.skin-black .logo > a { + color: #f9f9f9; +} +.skin-black .logo:hover { + /*background: #303030;*/ + /*color: #fff;*/ +} +/* skin-black content header */ +.skin-black .right-side > .content-header { + background: #fff; + box-shadow: none; +} +/* Skin-red user panel */ +.skin-black .user-panel > .image > img { + border: 1px solid #444; +} +.skin-black .user-panel > .info, +.skin-black .user-panel > .info > a { + color: #eee; +} +/* skin-black sidebar */ +.skin-black .sidebar { + border-bottom: 1px solid #39435C; +} +.skin-black .sidebar > .sidebar-menu > li { + /*border-top: 1px solid #333; + border-bottom: 0px solid #444;*/ +} +.skin-black .sidebar > .sidebar-menu > li:first-of-type { + border-top: 1px solid #444; +} +.skin-black .sidebar > .sidebar-menu > li:first-of-type > a { + border-top: 0px solid #333; +} +.skin-black .sidebar > .sidebar-menu > li > a { + margin-right: 1px; +} +.skin-black .sidebar > .sidebar-menu > li > a:hover, +.skin-black .sidebar > .sidebar-menu > li.active > a { + color: #f6f6f6; + background: #425164; +} +.skin-black .sidebar > .sidebar-menu > li > .treeview-menu { + margin: 0 1px; + background: #35404d; +} +.skin-black .left-side { + background: #39435C; +} +.skin-black .sidebar a { + color: #eee; +} +.skin-black .sidebar a:hover { + text-decoration: none; +} +.skin-black .treeview-menu > li > a { + color: #ccc; +} +.skin-black .treeview-menu > li.active, +.skin-black .treeview-menu > li:hover { + color: #fff; + background-color: #404B5F; +} +.skin-black .sidebar-form { + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + border: 0px solid #555; + margin: 10px 10px; +} +.skin-black .sidebar-form input[type="text"], +.skin-black .sidebar-form .btn { + box-shadow: none; + background-color: rgba(255, 255, 255, 0.1); + border: 0 solid rgba(255, 255, 255, 0.1); + height: 35px; + outline: none; +} +.skin-black .sidebar-form input[type="text"] { + color: #666; + -webkit-border-top-left-radius: 2px !important; + -webkit-border-top-right-radius: 0 !important; + -webkit-border-bottom-right-radius: 0 !important; + -webkit-border-bottom-left-radius: 2px !important; + -moz-border-radius-topleft: 2px !important; + -moz-border-radius-topright: 0 !important; + -moz-border-radius-bottomright: 0 !important; + -moz-border-radius-bottomleft: 2px !important; + border-top-left-radius: 2px !important; + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; + border-bottom-left-radius: 2px !important; +} +.skin-black .sidebar-form input[type="text"]:focus, +.skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { + background-color: #444; + border: 0; +} +.skin-black .sidebar-form input[type="text"]:focus + .input-group-btn .btn { + border-left: 0; +} +.skin-black .sidebar-form .btn { + color: #999; + -webkit-border-top-left-radius: 0 !important; + -webkit-border-top-right-radius: 2px !important; + -webkit-border-bottom-right-radius: 2px !important; + -webkit-border-bottom-left-radius: 0 !important; + -moz-border-radius-topleft: 0 !important; + -moz-border-radius-topright: 2px !important; + -moz-border-radius-bottomright: 2px !important; + -moz-border-radius-bottomleft: 0 !important; + border-top-left-radius: 0 !important; + border-top-right-radius: 2px !important; + border-bottom-right-radius: 2px !important; + border-bottom-left-radius: 0 !important; + border-left: 0; +} +.skin-black .sidebar .sidebar-menu .treeview-menu > li:hover { + background-color: #404B5F; +} +/*! + * iCheck v1.0.1, http://git.io/arlzeA + * ================================= + * Powerful jQuery and Zepto plugin for checkboxes and radio buttons customization + * + * (c) 2013 Damir Sultanov, http://fronteed.com + * MIT Licensed + */ +/* iCheck plugin Minimal skin, black +----------------------------------- */ +.icheckbox_minimal, +.iradio_minimal { + display: inline-block; + *display: inline; + vertical-align: middle; + margin: 0; + padding: 0; + width: 18px; + height: 18px; + background: rgba(255, 255, 255, 0.7) url(iCheck/minimal/minimal.png) no-repeat; + border: none; + cursor: pointer; +} +.icheckbox_minimal { + background-position: 0 0; +} +.icheckbox_minimal.hover { + background-position: -20px 0; +} +.icheckbox_minimal.checked { + background-position: -40px 0; +} +.icheckbox_minimal.disabled { + background-position: -60px 0; + cursor: default; +} +.icheckbox_minimal.checked.disabled { + background-position: -80px 0; +} +.iradio_minimal { + background-position: -100px 0; +} +.iradio_minimal.hover { + background-position: -120px 0; +} +.iradio_minimal.checked { + background-position: -140px 0; +} +.iradio_minimal.disabled { + background-position: -160px 0; + cursor: default; +} +.iradio_minimal.checked.disabled { + background-position: -180px 0; +} +/* Retina support */ +@media only screen and (-webkit-min-device-pixel-ratio: 1.5), only screen and (-moz-min-device-pixel-ratio: 1.5), only screen and (-o-min-device-pixel-ratio: 3/2), only screen and (min-device-pixel-ratio: 1.5) { + .icheckbox_minimal, + .iradio_minimal { + background-image: url('iCheck/minimal/minimal@2x.png'); + -webkit-background-size: 200px 20px; + background-size: 200px 20px; + } +} +/*.pace .pace-progress { + background: #00c0ef; + position: fixed; + z-index: 2000; + top: 0; + left: 0; + height: 2px; + -webkit-transition: width 1s; + -moz-transition: width 1s; + -o-transition: width 1s; + transition: width 1s; +} +.pace-inactive { + display: none; +}*/ + +.pace { + -webkit-pointer-events: none; + pointer-events: none; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} + +.pace-inactive { + display: none; +} + +.pace .pace-progress { + background-color: #29d; + position: fixed; + z-index: 2000; + top: 0; + left: 0; + height: 3px; + overflow: hidden; + + -webkit-transition: width 1s; + -moz-transition: width 1s; + -o-transition: width 1s; + transition: width 1s; +} + +.pace .pace-progress-inner { + position: absolute; + top: 0; + left: 0; + right: -32px; + bottom: 0; + + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.2)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.2)), color-stop(0.75, rgba(255, 255, 255, 0.2)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.2) 50%, rgba(255, 255, 255, 0.2) 75%, transparent 75%, transparent); + -webkit-background-size: 32px 32px; + -moz-background-size: 32px 32px; + -o-background-size: 32px 32px; + background-size: 32px 32px; + + -webkit-animation: pace-stripe-animation 500ms linear infinite; + -moz-animation: pace-stripe-animation 500ms linear infinite; + -ms-animation: pace-stripe-animation 500ms linear infinite; + -o-animation: pace-stripe-animation 500ms linear infinite; + animation: pace-stripe-animation 500ms linear infinite; +} + +@-webkit-keyframes pace-stripe-animation { + 0% { -webkit-transform: none; transform: none; } + 100% { -webkit-transform: translate(-32px, 0); transform: translate(-32px, 0); } +} +@-moz-keyframes pace-stripe-animation { + 0% { -moz-transform: none; transform: none; } + 100% { -moz-transform: translate(-32px, 0); transform: translate(-32px, 0); } +} +@-o-keyframes pace-stripe-animation { + 0% { -o-transform: none; transform: none; } + 100% { -o-transform: translate(-32px, 0); transform: translate(-32px, 0); } +} +@-ms-keyframes pace-stripe-animation { + 0% { -ms-transform: none; transform: none; } + 100% { -ms-transform: translate(-32px, 0); transform: translate(-32px, 0); } +} +@keyframes pace-stripe-animation { + 0% { transform: none; transform: none; } + 100% { transform: translate(-32px, 0); transform: translate(-32px, 0); } +} + +.btn-vk .badge { + color: #587ea3; + background-color: #ffffff; +} + +.tools a { + color: #a7a7a7; + margin-left: 10px; +} + +.panel { + border:none; + /*box-shadow: none;*/ + -webkit-box-shadow: 0 1px 0px rgba(0,0,0,0.05); + box-shadow: 0 1px 0px rgba(0,0,0,0.05); +} + +.panel-heading { + border-bottom: 1px solid #eee; + background-color: #FAFAFA; +} + +.msg-in { + position: relative; + background: #f4f4f4; +} +.msg-in:after { + right: 100%; + top: 30%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-color: rgba(136, 183, 213, 0); + border-right-color: #f4f4f4; + border-width: 6px; + margin-top: -6px; +} + +/*.msg-out { + position: relative; + background: #F1F5FD; +} +.msg-out:after { + right: 100%; + top: 30%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-color: rgba(136, 183, 213, 0); + border-right-color: #F1F5FD; + border-width: 6px; + margin-top: -6px; +}*/ + +.msg-out { + position: relative; + background: #F1F5FD; +} +.msg-out:after { + left: 100%; + top: 30%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-color: rgba(136, 183, 213, 0); + border-left-color: #F1F5FD; + border-width: 6px; + margin-top: -6px; +} + + +/*=Chat=*/ +ul.chat-list { + list-style: none; + padding-left: 0px; +} +.chat-list li { + margin-bottom:24px; +} +.chat-list .chat-avatar { + width:40px; + display:inline-block; + text-align:center; + float:left; +} +.chat-list .chat-avatar i { + font-size:12px; + font-style:normal; +} +.chat-list .ctext-wrap i { + display:block; + font-style:normal; + font-weight:bold; + position:relative; + font-size:12px; + color:#2cb9b3; +} +.chat-list .conversation-text { + display:inline-block; + font-size:12px; + float:left; + margin-left:12px; + width:70%; +} +.chat-list .ctext-wrap { + padding:10px; + /*background:#d5f2ef;*/ + -webkit-border-radius:3px; + -moz-border-radius:3px; + border-radius:3px; + position:relative; + display:inline-block; +} +.chat-list .ctext-wrap p { + margin:0px; + padding-top:0px; +} +.chat-list .ctext-wrap:after { + right:100%; + top:25%; + border:solid transparent; + content:" "; + height:0; + width:0; + position:absolute; + pointer-events:none; + border-color:rgba(213,242,239,0); + border-right-color:#d5f2ef; + border-width:5px; + margin-top:-5px; +} +.chat-list .odd .chat-avatar { + float:right !important; +} +.chat-list .odd .conversation-text { + width:70% !important; + margin-right:12px; + text-align: right; + float:right !important; +} +.chat-list .odd .ctext-wrap { + background:#eeeef2 !important; +} +.chat-list .odd .ctext-wrap i { + color:#acacac; +} +.chat-list .odd .ctext-wrap:after { + left:100% !important; + top:25% !important; + border-color:rgba(238,238,242,0)!important; + border-left-color:#eeeef2!important; +} +.chat-send { + padding-left:0px; +} +.chat-send button { + width: 100%; +} +/*notification*/ +.alert-icon { + width:40px; + height:40px; + display:inline-block; + -webkit-border-radius:100%; + -moz-border-radius:100%; + border-radius:100%; +} +.alert-icon i { + width:40px; + height:40px; + display:block; + text-align:center; + line-height:40px; + font-size:20px; + color:#fff; +} +.notification-info { + margin-left:56px; + margin-top:-40px; +} +ul.notification-meta { + list-style: none; + padding-left: 0px; +} +.notification-meta { + margin-bottom:3px; +} +.notification-info p { + margin:0px; + color:#999; + font-size:12px; +} +.alert-info .alert-icon { + background-color:#99cce3; +} +.alert-danger .alert-icon { + background-color:#fcb1ae; +} +.alert-success .alert-icon { + background-color:#98d7ad; +} +.alert-warning .alert-icon { + background-color:#ffe699; +} +.notification-sender { + color:#414147; +} +.notification-time { + font-style:italic; + color:#999; +} +.alert-info .notification-info a { + color:#45a2c9; +} +.alert-danger .notification-info a { + color:#fb6f6b; +} +.alert-success .notification-info a { + color:#42b663; +} +.alert-warning .notification-info a { + color:#e6cb76; +} +.alert-info.bucket-notification { + background-color:#eef7fd; +} +.alert-danger.bucket-notification { + background-color:#fef3f2; +} +.alert-success.bucket-notification { + background-color:#eef8f8; +} +.alert-warning.bucket-notification { + background-color: #fff7e1; +} + +/*--------------Tasks Widget--------------*/ + +.task-content { + margin-bottom: 30px; +} + +.tasks-widget .task-content:after { + clear: both; +} + +.tasks-widget .task-footer { + margin-top: 5px; +} + +.tasks-widget .task-footer:after, +.tasks-widget .task-footer:before { + content: ""; + display: table; + line-height: 0; +} + +.tasks-widget .task-footer:after { + clear: both; +} + +.tasks-widget .task-list { + padding:0; + margin:0; +} +ul.task-list { + list-style: none; +} + +.tasks-widget .task-list > li { + position:relative; + padding:10px 5px; + border-bottom:1px dashed #eaeaea; +} + +.tasks-widget .task-list li.last-line { + border-bottom:none; +} + +.tasks-widget .task-list li > .task-bell { + margin-left:10px; +} + +.tasks-widget .task-list li > .task-checkbox { + float:left; + width:30px; +} + +.tasks-widget .task-list li > .task-title { + overflow:hidden; + margin-right:10px; +} + +.tasks-widget .task-list li > .task-config { + position:absolute; + top:10px; + right:10px; +} + +.tasks-widget .task-list li .task-title .task-title-sp { + margin-right:5px; +} + +.tasks-widget .task-list li.task-done .task-title-sp { + text-decoration:line-through; + color: #bbbbbb; +} + +.tasks-widget .task-list li.task-done { + background:#f6f6f6; +} + +.tasks-widget .task-list li.task-done:hover { + background:#f4f4f4; +} + +.tasks-widget .task-list li:hover { + background:#f9f9f9; +} + +.tasks-widget .task-list li .task-config { + display:none; +} + +.tasks-widget .task-list li:hover > .task-config { + display:block; + margin-bottom:0 !important; +} + + +@media only screen and (max-width: 320px) { + + .tasks-widget .task-config-btn { + float:inherit; + display:block; + } + + .tasks-widget .task-list-projects li > .label { + margin-bottom:5px; + } + +} + +/*calendar*/ +.fc-first.fc-last { + background-color: #f0f3f4; +} +.external-event { + font-weight: normal; +} +.fc-button.fc-state-default { +border: 1px solid #d9dadc; + +margin-left: 0px!important; +background: #fafafa; +color: #666; +} + +.fc-state-default { + box-shadow: none; +} + +.weather-bg { + background: #59ace2; + border-radius: 4px; + -webkit-border-radius: 4px; + color: #fff; + text-align: center; + font-size: 16px; + font-weight: 300; + } +.weather-bg i { + font-size: 60px; + display: block; + } +.weather-bg .degree { + font-size: 60px; + } + .panel-item .degree { + font-size: 60px; + } + + +.reg-earn-stat { + text-align:center; + color:#6d6d6d; + text-transform:uppercase; + padding:40px 30px; + font-family:'Open Sans',sans-serif; + font-weight:600; +} +.reg-earn-stat span { + display:block; + color:#b0c781; + font-size:20px; +} +.loc-earn-stat { + text-align:center; + font-family:'Open Sans',sans-serif; + font-weight:600; + margin-bottom:30px; +} +.loc-earn-stat li { + padding:0px 15px; +} +.loc-earn-stat li { + display:inline-block; + text-transform:uppercase; + font-size:12px; +} +.loc-earn-stat li span { + display:block; + font-size:14px; +} +.stat-divider { + border-right:#dadada 1px dashed; +} +.vector-stat { + height:150px; + margin-top:20px; +} +.online-users img { + margin-right: 10px; +} +.online-users a { + color: #000; +} +ul.online-users { + background-color: #eee; +} +.online-users i.online { + color: #A9D86E; + /*margin: 5px 10px 5px 0px; + padding: 5px 10px 5px 0px;*/ + margin-top: 20px; + font-size: x-small; +} +.online-users i.offline { + color: #eee; + /*margin: 5px 10px 5px 0px; + padding: 5px 10px 5px 0px;*/ + margin-top: 20px; + font-size: x-small; +} +.panel>.online-users .list-group-item { + border-width: 0px 0; + padding: 0px 15px; +} +.online-users .list-group-item { + /*margin-bottom: 2px;*/ + padding: 0px 15px; +} +.online-users .list-group-item:hover { + /*margin-bottom: 2px;*/ + background-color: #fafafa; +} +.online-users .list-group-item:first-child { + /*margin-bottom: 0;*/ + border-top-right-radius: 0px; + border-top-left-radius: 0px; +} +.online-users .list-group-item:last-child { + /*margin-bottom: 0;*/ + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.chat-footer { + padding: 10px 0px; + background-color: #fff; +} +.chat-primary { + background: #4697ce; + color: #fff; +} +.chat-list .chat-primary:after { + right:100%; + top:25%; + border:solid transparent; + content:" "; + height:0; + width:0; + position:absolute; + pointer-events:none; + border-color:rgba(213,242,239,0); + border-right-color:#4697ce; + border-width:5px; + margin-top:-5px; +} + +.chat-indigo { + background: #9358ac; + color: #fff; +} +.chat-list .chat-indigo:after { + right:100%; + top:25%; + border:solid transparent; + content:" "; + height:0; + width:0; + position:absolute; + pointer-events:none; + border-color:rgba(213,242,239,0); + border-right-color:#9358ac; + border-width:5px; + margin-top:-5px; +} +.chat-midnightblue { + color: #fff; + background-color: #2b3d51; +} +.chat-list .chat-midnightblue:after { + right:100%; + top:25%; + border:solid transparent; + content:" "; + height:0; + width:0; + position:absolute; + pointer-events:none; + border-color:rgba(213,242,239,0); + border-right-color:#2b3d51; + border-width:5px; + margin-top:-5px; +} + +.sm-st { + background:#fff; + padding:20px; + -webkit-border-radius:3px; + -moz-border-radius:3px; + border-radius:3px; + margin-bottom:20px; + -webkit-box-shadow: 0 1px 0px rgba(0,0,0,0.05); + box-shadow: 0 1px 0px rgba(0,0,0,0.05); +} +.sm-st-icon { + width:60px; + height:60px; + display:inline-block; + line-height:60px; + text-align:center; + font-size:30px; + background:#eee; + -webkit-border-radius:5px; + -moz-border-radius:5px; + border-radius:5px; + float:left; + margin-right:10px; + color:#fff; +} +.sm-st-info { + font-size:12px; + padding-top:2px; +} +.sm-st-info span { + display:block; + font-size:24px; + font-weight:600; +} +.orange { + background:#fa8564 !important; +} +.tar { + background:#45cf95 !important; +} +.sm-st .green { + background:#86ba41 !important; +} +.pink { + background:#AC75F0 !important; +} +.yellow-b { + background: #fdd752 !important; +} + +/*general page*/ +.progress-xs { + height:10px; +} +.progress-sm { + height:12px; +} +.panel-heading .nav { + border:medium none; + font-size:13px; + margin:-10px -15px -15px; +} +.tab-bg-dark-navy-blue ul>li>a { + display:block; + padding:15px 15px !important; +} +.tab-bg-dark-navy-blue { + background:#f0f3f4; + border-radius:5px 5px 0 0; + -webkit-border-radius:5px 5px 0 0; + border-bottom:none; +} +.panel-heading .nav>li>a,.panel-heading .nav>li.active>a,.panel-heading .nav>li.active>a:hover,.panel-heading .nav>li.active>a:focus { + border-width:0; + border-radius:0; +} +.panel-heading .nav>li>a { + color:#898989; +} +.panel-heading .nav>li.active>a,.panel-heading .nav>li>a:hover { + color:#27c24c; + background:#fff; +} +.panel-heading .nav>li:first-child.active>a,.panel-heading .nav>li:first-child>a:hover { + border-radius:0px 0 0 0; + -webkit-border-radius: 0px 0 0 0; + /*border: 1px solid #eee;*/ +} +.tab-right { + height:48px; +} +.panel-heading.tab-right .nav>li:first-child.active>a,.tab-right.panel-heading .nav>li:first-child>a:hover { + border-radius:0; + -webkit-border-radius:0; +} +.panel-heading.tab-right .nav>li:last-child.active>a,.tab-right.panel-heading .nav>li:last-child>a:hover { + border-radius:0 4px 0 0; + -webkit-border-radius:0 4px 0 0; +} +.panel-heading.tab-right .nav-tabs>li>a { + margin-left:1px; + margin-right:0px; +} +.m-bot20 { + margin-bottom:20px; +} +.m-bot-none { + margin-bottom:0; +} +.wht-color { + color:#fff; +} +.close-sm { + font-size: 14px; +} +.general .panel-body { + /*border: 1px solid #eee;*/ + margin-left: -1px; +} + +/*progress bar*/ + +.progress-bar { + background-color: #428BCA; +} +.progress-bar-success { + background-color: #27c24c; +} +.progress-bar-info { + background-color: #23b7e5; +} +.progress-bar-warning { + background-color: #fad733; +} +.progress-bar-danger { + background-color: #f05050; +} +#accordion .panel { + /*border: 1px solid #E4E4E4;*/ + border-radius: 0px; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + margin-bottom: -4px; +} + +.table > thead > tr > th { + vertical-align: bottom; + border-bottom: 1px solid #dddddd; +} + +#summary a.list-group-item{ + padding: 12px; + border:1px solid #f4f4f4; +} +#summary a.list-group-item:hover{ + background-color: #eee; + color: #4f4f4f; + +} + +.panel-profile .profile { + margin: 5px 15px 5px 5px; + border-radius: 50%; + -webkit-box-shadow: 0 0 0 5px #f7f7f7, 0 0 10px 0 rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 0 0 5px #f7f7f7, 0 0 10px 0 rgba(0, 0, 0, 0.2); + box-shadow: 0 0 0 5px #f7f7f7, 0 0 10px 0 rgba(0, 0, 0, 0.2); +} +.panel-profile li.list-group-item { + border: 1px solid #efefef; + line-height: 30px; +} +.panel-profile li.list-group-item:hover{ + background-color: #fafafa; + color: #4f4f4f; +} +.panel-profile li i { + margin-right: 5px; +} + +.color-wh { + color: #f9f9f9; +} +.profile40 { + width: 40px; + height: 40px; +} +.profile70 { + width: 70px; + height: 70px; +} +.profile80 { + width: 80px; + height: 80px; +} +.profile90 { + width: 90px; + height: 90px; +} +.thumb-sm { +width: 40px; +display: inline-block; +} +.mess li { + border: 1px solid #efefef; +} +.avatar { +position: relative; +display: block; +border-radius: 500px; +white-space: nowrap; +} +.panel .panel-heading { +padding: 10px 15px; +text-transform: uppercase; +} +.bg-info { +background-color: #7acbee; +color: white; +} + +.weather-category { + padding:25px 0; + color:#74829C; +} +.weather-category ul { + padding:0; + margin:0; + display:inline-block; + width:100%; +} +.weather-category ul li { + display:inline-block; + width:32%; + text-align:center; + border-right:1px solid #e6e6e6; + display:inline-block; +} +.weather-category ul li h5 { + margin:0 0 5px 0; + text-transform:uppercase; + font-weight:300; +} +.weather-category ul li a { +} +.weather-category ul li:last-child { + border-right: none; +} + +/*.twt-category { + display:inline-block; + margin-bottom:11px; + margin-top:10px; + width:100%; +}*/ +.twt-category ul li { + color:#bdbdbd; + font-size:13px; +} +.twt-category h5 { + font-size:18px; + font-weight:400 !important; +} +.block { + display: block; +} +.m-t-10 { + margin-top: 10px; +} +.m-r-15 { + margin-right:15px; +} +.p-15 { + padding: 15px; +} +.w-stat { + margin-bottom: 10px; +} +.panel-box { + display: table; + table-layout: fixed; + width: 100%; + height: 100%; + text-align: center; + border: none; +} +.panel-box .panel-item { + display: table-cell; + padding: 30px; + width: 1%; + vertical-align: middle; + border-radius: 0; +} +.panel-box .panel-left { + -moz-border-radius-topleft: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.panel-box .panel-right { + -moz-border-radius-topright: 4px; + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-bottomright: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; +} +.fb-follower { + background: #335397; + color: #fff; + text-align: center; + border-radius: 4px 4px 0 0; + -webkit-border-radius: 4px 4px 0 0; +} +.tw-follower { + background: #00c7f7; + color: #fff; + text-align: center; + border-radius: 4px 4px 0 0; + -webkit-border-radius: 4px 4px 0 0; +} +.follower-foot { +padding: 8px 5px 5px 5px; +color: #757575; +border-radius: 0 0 4px 4px; +-webkit-border-radius: 0 0 4px 4px; +font-weight: 300; +} +.follower-foot ul { +padding: 0; +margin: 0; +} +.follower-foot ul li { +display: inline-block; +text-align: center; +width: 48%; +padding: 10px; +line-height: normal; +} + +.gauge-canvas { +text-align: center; +} +.gauge-meta { +margin: 0px; +/*padding-top: 7px;*/ +padding-left: 0px; +list-style: none; +} +.gauge-value { + text-align: center; +color: #5AA1D1; +font-size: 16px; +font-weight: bold; +/*padding-left: 20px;*/ +} +/*.gauge-title { +color: #ccc; +font-size: 14px; +padding-right: 20px; +}*/ + +/*chart*/ +.top-stats-panel .sm-pie { +/*margin-top: 30px;*/ +/*padding: 10px;*/ +} +.sm-pie { +height: 100px; +width: 100%; +display: block; +} +/*mail inbox*/ + + + + +/*advance form*/ +/*colorpicker*/ +.input-group.color .add-on i, .input-prepend.color .add-on i { + display: block; + cursor: pointer; + width: 16px; + height: 16px; +} + + + + + +.dropdown-menu.dropdown-custom>li { +padding: 8px 10px; +font-size: 12px; +} +.dropdown-menu li:first-child.dropdown-header { +border-top: 0; +border-top-left-radius: 3px; +border-top-right-radius: 3px; +} + +li.dropdown-header { +padding: 5px 10px; +color: #394263; +background-color: #f9fafc; +border-top: 1px solid #eaedf1; +border-bottom: 1px solid #eaedf1; +} +.dropdown-menu .divider { +margin: 2px 0; +padding: 0!important; +background-color: #f0f0f0; +} +.dropdown-menu.dropdown-custom>li>a { +border-radius: 3px; +} +.dropdown-menu>li>a { +padding: 6px 10px; +} +.dropdown-menu.dropdown-custom>li>a:hover { + color: #fff; +} +.dropdown-menu.dropdown-custom { + min-width: 200px; +} + +.horizontal .dropdown-menu>li>a { + padding: 8px 15px; +} + +.horizontal .dropdown-menu>li>a:hover{ + background-color: #eee; + /*color: #fff;*/ +} + +.footer-main { + background-color: #FFF; + padding: 7px 13px; + border-top: 1px solid #eee; + text-align: center; +} + +.stat-elem { + + background-color: #fff; + padding: 18px; + border-radius: 40px; + +} + +.stat-info { + text-align: center; + background-color:#fff; + border-radius: 5px; + margin-top: -5px; + padding: 8px; + -webkit-box-shadow: 0 1px 0px rgba(0,0,0,0.05); + box-shadow: 0 1px 0px rgba(0,0,0,0.05); + font-style: italic; +} + +.stat-icon { + text-align: center; + margin-bottom: 5px; +} + +.st-red { + background-color: #F05050; +} +.st-green { + background-color: #27C24C; +} +.st-violet { + background-color: #7266ba; +} +.st-blue { + background-color: #23b7e5; +} + +ul,li{ + list-style: none; +} +div#nav{ + + +} +div#nav ul{ + border-bottom: 1px solid #7092BE;; +} +div#nav li{ + position: relative; + display: inline-block; + line-height: 3em; + text-align: center; + width: 50%; + cursor: pointer; + transition: 0.2s all linear; +} +div.hide1{ + display: none; +} +div#nav li.active{ + color: #04B3E5; + font-weight: 700; + opacity: 1; + border-bottom: 1px solid #04B3E5; + transition: 0.2s all linear; +} \ No newline at end of file diff --git a/public/self/dataset_preview.js b/public/self/dataset_preview.js new file mode 100644 index 000000000..3c9ded0aa --- /dev/null +++ b/public/self/dataset_preview.js @@ -0,0 +1,754 @@ +var img=new Image(); + +var ip = getIp(); + + + +var token = getCookie("_csrf"); + +canvas = document.getElementById("myCanvas"); +context = canvas.getContext("2d"); +// canvas.width = document.getElementById("myCanvas").offsetWidth; +// canvas.height = document.getElementById("myCanvas").offsetWidth/1280*720; + +canvas.width = document.getElementById("win_canvas").offsetWidth; +canvas.height = document.getElementById("win_canvas").offsetHeight; + + + + +var color_dict = {"car":"#0099CC", "person":"#FF99CC","point":"#00cc00","pointselected":"red"}; +var color_person = {"0":"#13c90c","1":"#fc0707","2":"#FF99CC","3":"#fceb07"}; + +var rects=[]; +var masks=[]; +var pointShapes =[]; + +var fileindex =0; +var lastindex=false; +var labeltastresult; + +var pageSize = 12; +var tableData; +var tablePageData; +var dataset_id = $('#hide_uuidid').val(); +var dbdatasetid = dataset_id; +var textContent; +var labelInfo; + +page(0,pageSize); + + +function getCookie(name) +{ + var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); + + if(arr=document.cookie.match(reg)) + + return unescape(arr[2]); + else + return null; +} + +function list(current,pageSize){ + $.ajax({ + type:"GET", + url:ip + "/gitea-dateset-item-page", + headers: { + authorization:token, + }, + dataType:"json", + data:{ + 'datasetId':dbdatasetid, + 'startPage':current, + 'pageSize':pageSize}, + async:false, + success:function(json){ + tablePageData = json; + tableData = json.data; + labeltastresult = tableData; + fileindex=0; + if(lastindex){ + fileindex = pageSize - 1; + } + + }, + error:function(response) { + + + } + }); +} + + + +function getTextContent(uuid,filename){ + $.ajax({ + type:"GET", + url:ip + "/getgiteatext", + headers: { + authorization:token, + }, + dataType:"text", + data:{ + 'uuid':uuid, + 'filename':filename + }, + async:false, + success:function(json){ + textContent = json; + + }, + error:function(response) { + + } + }); +} + + + +/* +function previewDataSetFile(uuid,filename){ + console.log('uuid=' + uuid + " filename=" + filename); + loadimg(uuid,filename); +} + +function loadimg(uuid,filename){ + img.src = ip + "/getgiteaimage?uuid=" + uuid + "&filename=" + filename; + var fname = filename.substring(filename.lastIndexOf('/') + 1); + $("#filename").text(fname); +} +*/ + +function loadimg(){ + var length = labeltastresult[fileindex].pic_image_field.length; + +  if(labeltastresult[fileindex].pic_image_field.substring(length - 5) == ".json"  +     || labeltastresult[fileindex].pic_image_field.substring(length - 4) == ".xml" +     || labeltastresult[fileindex].pic_image_field.substring(length - 4) == ".txt" +     || labeltastresult[fileindex].pic_image_field.substring(length - 4) == ".csv" +     || labeltastresult[fileindex].pic_image_field.substring(length - 3) == ".md" +     || labeltastresult[fileindex].pic_image_field.substring(length - 3) == ".py" +     || labeltastresult[fileindex].pic_image_field.substring(length - 3) == ".sh"){ + + //文本 + canvas.style.display="none"; + document.getElementById("textcontent").style.display="block"; + getTextContent(dataset_id,labeltastresult[fileindex].pic_image_field); + $('#textcontent').height(canvas.height-40) + $("#textcontent").text(textContent); + }else{ + if(labeltastresult[fileindex].pic_image_field.substring(length - 5) == ".jpeg"  +    || labeltastresult[fileindex].pic_image_field.substring(length - 4) == ".jpg" +    || labeltastresult[fileindex].pic_image_field.substring(length - 4) == ".bmp" +    || labeltastresult[fileindex].pic_image_field.substring(length - 4) == ".gif" +    || labeltastresult[fileindex].pic_image_field.substring(length - 4) == ".png"){ + canvas.style.display="block"; + document.getElementById("textcontent").style.display="none"; + img.src = ip + "/getgiteaimage?uuid=" + dataset_id + "&filename=" + labeltastresult[fileindex].pic_image_field; + }else{ + canvas.style.display="none"; + document.getElementById("textcontent").style.display="block"; + $('#textcontent').height(canvas.height) + $("#textcontent").text("暂不支持预览"); + + } + } + + + var fname = tableData[fileindex].pic_image_field.substring(tableData[fileindex].pic_image_field.lastIndexOf('/') + 1); + $("#filename").text(fname); +} + +img.onload = function(){ + + + canvas.width = document.getElementById("win_canvas").offsetWidth; + canvas.height = document.getElementById("win_canvas").offsetHeight-40; + //调整画布大小 + // if ((img.width/img.height)<(canvas.width/canvas.height)){ + // canvas.width=canvas.height * img.width / img.height; + // } + // else{ + // canvas.height=canvas.width * img.height / img.width; + // } + drawimage(); +} + +function isEmpty(str){ + if(typeof str == "undefined" || str == null || str == ""){ + return true; + } + return false; +} + +function drawimage() { + + parse_labelinfo(labeltastresult[fileindex].label_info); + + // 清除画布,准备绘制 + context.clearRect(0, 0, canvas.width, canvas.heigth); + // modal_context.cleararc + + context.drawImage(img,0,0,img.width,img.height,0,0,canvas.width, canvas.height); + + for(var i=0; i this.points[i].x){ + minX = this.points[i].x; + } + if(maxX < this.points[i].x){ + maxX = this.points[i].x; + } + if(minY > this.points[i].y){ + minY = this.points[i].y; + } + if(maxY < this.points[i].y){ + maxY = this.points[i].y; + } + } + return [minX, minY, maxX, maxY]; + } + + this.id =""; //标识 + this.blurred=false;//模糊不清的; 记不清的; 难以区分的; 模棱两可的 + this.goodIllumination = true; //照明 + this.frontview = true;//正面图 +} + +function getCanvasLocationX(num){ + return Math.round(num * canvas.width/parseInt(img.width)); +} + +function getCanvasLocationY(num){ + return Math.round(num * canvas.height/parseInt(img.height)); +} + + +function page(current,pageSize){ + list(current,pageSize); + showfilelist(); + breadFiles(); + loadimg(); + setPage(tablePageData,pageSize); +} + + +getLabelInfo(dataset_id); +showlabelflist(); + + +function nextPage(){ + var current = $('#displayPage1').text(); + + page(current,pageSize); +} + +function prePage(){ + var current =$('#displayPage1').text(); + + if(current > 1){ + + page(current - 2,pageSize); + } +} + +function goPage(){ + var goNum = $('#goNum').val(); + + var pageTotal = $("#totalNum").text(); + var pageNum = parseInt(pageTotal/pageSize); + if(pageTotal%pageSize!=0){ + pageNum += 1; + }else { + pageNum = pageNum; + } + if (goNum<=0){ + alert("请输入大于0的数值"); + } + else if(goNum<=pageNum){ + page(goNum - 1,pageSize); + } + else{ + alert("不能超出总页码!"); + } +} + +$("#goNum").keydown(function (e) { + if (e.keyCode == 13) { + goPage(); + } +}); + + +function setPage(pageData,pageSize){ + + if (isEmpty(pageData)){ + return; + } + var startIndex = pageData.current * pageSize; + if(pageData.total > 0){ + startIndex = startIndex + 1; + } + if(startIndex < 10){ + $('#startIndex').text(" " + (startIndex)); + }else{ + $('#startIndex').text(startIndex); + } + var endIndex = pageData.current * pageSize + pageData.data.length; + if(endIndex < 10){ + $('#endIndex').text(" " + (endIndex)); + }else{ + $('#endIndex').text(endIndex); + } + + $('#totalNum').text(pageData.total); + $('#displayPage1').text(pageData.current + 1); + + + + if(pageData.current == 0){ + + $('#prePage').removeAttr("href"); + $('#prePage').attr('style','color:#f5f5f6;'); + } + else{ + $('#prePage').attr("href","javascript:prePage()"); + $('#prePage').attr('style','color:#000;'); + } + + if((pageData.current + 1) * pageSize >= pageData.total){ + + $('#nextPage').removeAttr("href"); + $('#nextPage').attr('style','color:#f5f5f6;') + } + else{ + $('#nextPage').attr("href","javascript:nextPage()"); + $('#nextPage').attr('style','color:#000;'); + } + + var pageTotal = pageData.total; + var pageNum = parseInt(pageTotal/pageSize); + if(pageTotal%pageSize!=0){ + pageNum += 1; + }else { + pageNum = pageNum; + } + $("#totalPageNum").text(pageNum); +} + +function clickfilelist(index){ + fileindex=index; + loadimg(); + //drawimage(); + breadFiles() + showfilelist(); +} + +function clickNext(){ + if(fileindex= tablePageData.total){ + return; + } + nextPage(); + } + +} + + +function next(){ + if(fileindex0) {fileindex=fileindex-1;} + loadimg(); + //drawimage(); + breadFiles(); + showfilelist(); +} + + +// function showfilelist(){ +// var htmlstr=""; +// for (var i=0;i"+ fname+ ""; +// }; +// document.getElementById("filelist").innerHTML=htmlstr; +// } + + +function showfilelist(){ + // var filename_title = $('a.section:first').text() + // filename_title = filename_title.substring(0,filename_title.lastIndexOf('.')) + var filename_index = labeltastresult[0].pic_image_field.indexOf("/",70); + filename_title = labeltastresult[0].pic_image_field.substring(filename_index + 1); + filename_title = filename_title.substring(0,filename_title.indexOf('/')) + var htmlstr = ''; + // htmlstr += '
'; + htmlstr += '
' + htmlstr += '' + htmlstr += '
' + htmlstr += '
'+filename_title+'
' + htmlstr += '
' + + for (var i=0;i 70){ + var tmpIndex = labeltastresult[i].pic_image_field.indexOf("/",70); + console.log(tmpIndex) + if(tmpIndex != -1){ + fname = labeltastresult[i].pic_image_field.substring(tmpIndex + 1); + fname = fname.substring(fname.indexOf('/')+1); + } + } + + htmlstr += '
' + htmlstr += '
' + if(i==fileindex){ + htmlstr += '
'+fname+'
' + } + else{ + htmlstr += '
'+fname+'
' + } + htmlstr += '
' + htmlstr += '
' + }; + htmlstr += '
' + htmlstr += '
' + htmlstr += '
' + document.getElementById("filelist").innerHTML=htmlstr; +} + + +function breadFiles(){ + + // for (var i=0;i 70){ + // var tmp_index = labeltastresult[i].pic_image_field.indexOf("/",70); + // if(tmp_index != -1){ + // fname_full_path = labeltastresult[i].pic_image_field.substring(tmp_index + 1); + // } + // var fname_path = fname_full_path.split('/') + // html_breadFile += '
'+fname_full_path+'.zip'+'
' + // for(var i=1;i' + + // } + // } + // else{ + + + + // } + // } + var fname_full_path="" + var filename_title = $('a.section:first').text() + filename_title = filename_title.substring(0,filename_title.lastIndexOf('.')) + var tmp_index = tableData[fileindex].pic_image_field.indexOf("/",70); + if(tmp_index != -1){ + fname_full_path = tableData[fileindex].pic_image_field.substring(tmp_index + 1); + } + var fname_path = fname_full_path.split('/') + console.log(fname_path) + // var filename_text = tableData[fileindex].pic_image_field.substring(tableData[fileindex].pic_image_field.lastIndexOf('/')+1) + var html_breadFile = '' + // var source_name = filename_title+'.zip' + // html_breadFile += '
'+source_name+'
' + // html_breadFile += '
/
' + html_breadFile += '
'+filename_title+'
' + html_breadFile += '
/
' + for (var i=0;i' + html_breadFile += '
/
' + } + + document.getElementById("breadFile").innerHTML=html_breadFile + +} + +function showlabelflist(){ + if(!isEmpty(labelInfo)){ + var resLabelInfo = JSON.parse(labelInfo) + var textInfo = resLabelInfo["type"] + var html_labelFile = '' + for (var i=0;i${textInfo[i]}` + + + } + document.getElementById("labellist").innerHTML=html_labelFile + setColor() + } + else{ + return + } + +} +function setColor(){ + colorinfo1 = ['rgba(0, 199, 255, 0.4)','rgba(114, 46, 209, 0.4)','rgba(188, 100, 164, 0.4)','rgba(153, 204, 0, 0.4)','rgba(51, 204, 153, 0.4)','rgba(255, 204, 51, 0.4)', + 'rgba(71, 255, 71, 0.4)','rgba(255, 154, 71, 0.4)','rgba(71, 126, 255, 0.4)','rgba(71, 255, 255, 0.4)','rgba(255, 247, 71, 0.4)','rgba(196, 127, 255, 0.4)','rgba(233, 84, 100, 0.4)', + 'rgba(255, 71, 204, 0.4)',' rgba(43, 199, 160, 0.4)'] + colorinfo2 = ['#00C7FF','#722ED1','#BC64A4','#99CC00','#33CC99','#FFCC33','#47FF47','#FF9A47','#477EFF','#47FFFF','#FFF747','#C47FFF','#E95464','#FF47CC','#2BC7A0'] + var el_span = document.querySelectorAll("span.labelInfo") + for (var i=0;i + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/self/fonts/fontawesome-webfont.ttf b/public/self/fonts/fontawesome-webfont.ttf new file mode 100644 index 000000000..35acda2fa Binary files /dev/null and b/public/self/fonts/fontawesome-webfont.ttf differ diff --git a/public/self/fonts/fontawesome-webfont.woff b/public/self/fonts/fontawesome-webfont.woff new file mode 100644 index 000000000..400014a4b Binary files /dev/null and b/public/self/fonts/fontawesome-webfont.woff differ diff --git a/public/self/fonts/fontawesome-webfont.woff2 b/public/self/fonts/fontawesome-webfont.woff2 new file mode 100644 index 000000000..4d13fc604 Binary files /dev/null and b/public/self/fonts/fontawesome-webfont.woff2 differ diff --git a/public/self/func.js b/public/self/func.js new file mode 100644 index 000000000..d16ca1b05 --- /dev/null +++ b/public/self/func.js @@ -0,0 +1,269 @@ +function getIp(){ + + return "/labelsystem"; + +} + + +function isEmpty(str){ + if(typeof str == "undefined" || str == null || str == ""){ + return true; + } + return false; +} + +function redirect(response){ + + if("REDIRECT" == response.getResponseHeader("REDIRECT")){ //若HEADER中含有REDIRECT说明后端想重定向, + var win = window; + while(win != win.top){ + win = win.top; + } + win.location.href = getIp() +"/login.html";//使用win.location.href去实现重定向到登录页面 + } + +} + +function setCookie(name,value) +{ + var Days = 7; + var exp = new Date(); + exp.setTime(exp.getTime() + Days*24*60*60*1000); + document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); +} + +//读取cookies +function getCookie(name) +{ + var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); + + if(arr=document.cookie.match(reg)) + + return unescape(arr[2]); + else + return null; +} + +function delCookie(name) +{ + var exp = new Date(); + exp.setTime(exp.getTime() - 1); + var cval=getCookie(name); + if(cval!=null) + document.cookie= name + "="+cval+";expires="+exp.toGMTString(); +} + +//检查是否都符合 注册 要求 +function check_reg() +{ + if(check_email(document.getElementById('email')) && check_web(document.getElementById('web'))) + { + return true; + }else{ + return false; + } +} +//检查密码长度不能少于6 +function check_len(thisObj){ + if(thisObj.value.length==0) + { + document.getElementById('show_pass').innerHTML="密码不能为空"; + return false; + }else{ + if (thisObj.value.length<6) + { + document.getElementById('show_pass').innerHTML="密码长度不少于6"; + return false; + } + document.getElementById('show_pass').innerHTML=""; + return true; + } +} +//检查俩次密码输入是否一致 +function check_pass(thisObj){ + var psw=document.getElementById('pass'); + if(psw.value.length==0) + { + document.getElementById('show_pass').innerHTML="密码不能为空"; + return false; + }else{ + document.getElementById('show_pass').innerHTML=""; + if (thisObj.value!=psw.value) + { + document.getElementById('show_repass').innerHTML="两次密码输入不正确"; + return false; + } + document.getElementById('show_repass').innerHTML=""; + return true; + } +} +//检查email是否正确 +function check_email(thisObj){ + var reg=/^([a-zA-Z\d][a-zA-Z0-9_]+@[a-zA-Z\d]+(\.[a-zA-Z\d]+)+)$/gi; + var rzt=thisObj.value.match(reg); + if(thisObj.value.length==0){ + document.getElementById('show_e').innerHTML="Email不能为空"; + return false; + }else{ + if (rzt==null) + { + document.getElementById('show_e').innerHTML="Email地址不正确"; + return false; + } + document.getElementById('show_e').innerHTML=""; + return true; + } +} +//检查web是否正确 +function check_web(thisObj){ + //var reg=/^\w+([\.\-]\w)*$/; + //var rzt=thisObj.value.match(reg); + if(thisObj.value.length==0){ + document.getElementById('show_web').innerHTML="主页不能为空"; + return false; + }else{ + /*if (rzt==null) + { + document.getElementById('show_web').innerHTML="主页地址不正确"; + return false; + } */ + var strRegex = "^((https|http|ftp|rtsp|mms)?://)" + + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" //ftp的user@ + + "(([0-9]{1,3}\.){3}[0-9]{1,3}" // IP形式的URL- 199.194.52.184 + + "|" // 允许IP和DOMAIN(域名) + + "([0-9a-z_!~*'()-]+\.)*" // 域名- www. + + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\." // 二级域名 + + "[a-z]{2,6})" // first level domain- .com or .museum + + "(:[0-9]{1,4})?" // 端口- :80 + + "((/?)|" // a slash isn't required if there is no file name + + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"; + var re=new RegExp(strRegex); + if(!re.test(thisObj.value)) + { + document.getElementById('show_web').innerHTML="主页地址不正确"; + return false; + } + document.getElementById('show_web').innerHTML=""; + return true; + } +} + +function isRightLatitude(lat){ + var latreg = /^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/; + + if(!latreg.test(lat)){ + return false; + //console.log("纬度整数部分为0-90,小数部分为0到6位!"); + } + return true; +} + +function isRightLongitude(longitude){ + var longrg = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/; + if(!longrg.test(longitude)){ + return false; + //console.log("经度整数部分为0-180,小数部分为0到6位!"); + } + return true; +} + +function isRightDateTime_dot(time){ + //2020-05-20 14:20:20 + if(time.length != 19){ + return false; + } + return strDateTime(time); +} + +function strDateTime(str) +{ + var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; + var r = str.match(reg); + if(r==null){ + return false; + } + var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]); + return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]); +} + +function isRightDateTime_yyyyMMddHHmmss(time){ + //20200520142020 + if(time.length != 14){ + return false; + } + var year = time.substring(0,4); + var month = time.substring(4,6); + var day = time.substring(6,8); + var hour = time.substring(8,10); + var minute = time.substring(10,12); + var second = time.substring(12,14); + console.log("year=" + year + " month=" + month + "day=" + day); + var d= new Date(year,month-1,day,hour,minute,second); + return (d.getFullYear()==year && (d.getMonth()+1)== month&& d.getDate()== day && d.getHours()==hour && d.getMinutes()==minute && d.getSeconds()==second); + +} + +function isDateString(strDate){ + var strSeparator = "-"; //日期分隔符 + var strDateArray; + var intYear; + var intMonth; + var intDay; + var boolLeapYear; + var ErrorMsg = ""; //出错信息 + strDateArray = strDate.split(strSeparator); + //没有判断长度,其实2008-8-8也是合理的//strDate.length != 10 || + if(strDateArray.length != 3) { + ErrorMsg += "日期格式必须为: yyyy-MM-dd"; + return ErrorMsg; + } + intYear = parseInt(strDateArray[0],10); + intMonth = parseInt(strDateArray[1],10); + intDay = parseInt(strDateArray[2],10); + if(isNaN(intYear)||isNaN(intMonth)||isNaN(intDay)) { + ErrorMsg += "日期格式错误: 年月日必须为纯数字"; + return ErrorMsg; + } + if(intMonth>12 || intMonth<1) { + ErrorMsg += "日期格式错误: 月份必须介于1和12之间"; + return ErrorMsg; + } + if((intMonth==1||intMonth==3||intMonth==5||intMonth==7 + ||intMonth==8||intMonth==10||intMonth==12) + &&(intDay>31||intDay<1)) { + ErrorMsg += "日期格式错误: 大月的天数必须介于1到31之间"; + return ErrorMsg; + } + if((intMonth==4||intMonth==6||intMonth==9||intMonth==11) + &&(intDay>30||intDay<1)) { + ErrorMsg += "日期格式错误: 小月的天数必须介于1到31之间"; + return ErrorMsg; + } + if(intMonth==2){ + if(intDay < 1) { + ErrorMsg += "日期格式错误: 日期必须大于或等于1"; + return ErrorMsg; + } + boolLeapYear = false; + if((intYear%100) == 0){ + if((intYear%400) == 0) + boolLeapYear = true; + } + else{ + if((intYear % 4) == 0) + boolLeapYear = true; + } + if(boolLeapYear){ + if(intDay > 29) { + ErrorMsg += "日期格式错误: 闰年的2月份天数不能超过29"; + return ErrorMsg; + } + } else { + if(intDay > 28) { + ErrorMsg += "日期格式错误: 非闰年的2月份天数不能超过28"; + return ErrorMsg; + } + } + } + return ErrorMsg; +} diff --git a/public/self/js/Director/detection.js b/public/self/js/Director/detection.js new file mode 100644 index 000000000..5f40e73c3 --- /dev/null +++ b/public/self/js/Director/detection.js @@ -0,0 +1,2938 @@ +// +/** + * @author zhaiyunpeng + * @copyright 2019 + * javascript for person and vehicle detection + */ + +var regions; +var img=new Image(); +var imginfo = {}; +var ip = getIp(); +var token = getSessionStorageMessage("token"); +var userType = getSessionStorageMessage("userType"); +console.log("token=" + token); +var loadFinished=false; //判断是否加载完成,防止上下张快捷键过快,导致保存冲刷掉原有数据,保存空数据 +var currentImage=true; + +if(userType == 2){ + $('#title_id').text("通用图片审核"); +} + + +function getCookieOrMessage(key){ + var value = getCookie(key); + + return value; +} + +function getSessionStorageMessage(key){ + var value = sessionStorage.getItem(key); + if(isEmpty(value)){ + return localStorage.getItem(key); + } + return value; +} + + +//获取元素绝对位置 获取鼠标坐标 +function getElementLeft(element){ + var actualLeft = element.offsetLeft; + var current = element.offsetParent; + while (current !==null){ + actualLeft += (current.offsetLeft+current.clientLeft); + current = current.offsetParent; + } + return actualLeft; +} + +function getElementTop(element){ + var actualTop = element.offsetTop; + var current = element.offsetParent; + while (current !== null){ + actualTop += (current.offsetTop+current.clientTop); + current = current.offsetParent; + } + return actualTop; +} + +// canvas 矩形框集合 +//by yunpeng zhai +//变量定义//变量重置 +// +var verifyMap = {"1":"大小不合格","2":"颜色不合格","3":"其它不合格"}; +var label_task = getSessionStorageMessage("label_task"); +var label_task_status = getSessionStorageMessage("label_task_status"); //1表示审核 +console.log("label_task=" + label_task); +var label_task_info; +var labeltastresult; + +var rects=[]; +var masks=[]; +var pointShapes =[]; +var copyrects;//复制变量 +var copymasks;//复制使用的变量 +var copyPointShapes; +var undoShape; + +var color_dict = {"rect":"#13c90c","car":"#0099CC", "person":"#FF99CC","point":"#00cc00","pointselected":"red"}; +var color_person = {"0":"#13c90c","1":"#fc0707","2":"#FF99CC","3":"#fceb07"}; +var color_all={"0":"#13c90c","1":"#fc0707","2":"#FF99CC","3":"#fceb07","4":"#FF33FF","5":"#666600","6":"#4B0082","7":"#B8860B","8": "#000000","9":"#800000","10": "#FF00FF","11":"#8B4513","12":" #0000CD","13":" #008B8B","14":"#708090","15": "#00FFFF","16":"#FF00FF","17":"#9370DB","18":"#7CFC00","19":"#F08080","20":"#C71585"}; +var SelectedRect; +var SelectedpointId; +var Selectedmask; +var SelectedPointShape; + +var creatingmask; +var SelectedmaskpointId; +var tocreaterect=false; +var tocreatemask=false; +var toCreatePoint = false; +var boxcls = "person"; +var mouseonpoint_mask; +var mouseonpoint_rect; +var mouseonrect_rect; +var mouseonmask_mask; +var old_click_x1; +var old_click_y1; +var stretch=false; +var stretch_mask=false; +var isDragging = false; +var showpopVar = false; +var widthstart,widthend; +var heightstart,heightend; + +var dragging = false; +var startx = 0; +var starty = 0; +var imgScale = 1; + +var fileindex=0; +var lastindex=false; + +var isLabelChange = false; +var maxIdNum=0; + +function reset_var(){ + SelectedRect=null; + SelectedpointId=null; + SelectedmaskpointId = null; + Selectedmask = null; + SelectedPointShape = null; + creatingmask = null; + toCreatePoint = false; + tocreaterect=false; + tocreatemask = false; + boxcls = "person"; + mouseonpoint_mask = null; + mouseonpoint_rect=null; + mouseonrect_rect=null; + mouseonmask_mask=null; + old_click_x1=null; + old_click_y1=null; + stretch=false; + stretch_mask = false; + isDragging = false; + showpopVar = false; + widthstart,widthend=null; + heightstart,heightend=null; + imgScale = 1; + dragging = false; + startx = 0; + starty = 0; +} + +var label_attributes ; + +//by yunpeng zhai +//基本对象的定义 点, 矩形, 多边形MASK +// +function point(x,y){ + this.x = x; + this.y = y; + this.isSelected = false; +}; + +function pointShape(x,y,type,score=1.0){ + this.x = x; + this.y = y; + this.isSelected = false; + this.type = type; + this.score = score; + this.id =""; //标识 + this.blurred=false;//模糊不清的; 记不清的; 难以区分的; 模棱两可的 + this.goodIllumination = false; //照明 + this.frontview = false;//正面图 + this.other = {};//自定义属性 + this.other['region_attributes'] = {}; +} + +function rectar(x1,y1,x2,y2, type, score=1.0){ + // this.x = x; + // this.y = y; + // this.width = width; + // this.height = height; + this.type = type; + this.score = score; + //0--1, + //| | + //2--3 + this.points = [new point(x1,y1), new point(x1, y2),new point(x2, y1),new point(x2, y2)]; + this.getXYWH = function(){ + var x_min=Math.min(this.points[0].x,this.points[1].x,this.points[2].x,this.points[3].x); + var x_max=Math.max(this.points[0].x,this.points[1].x,this.points[2].x,this.points[3].x); + var y_min=Math.min(this.points[0].y,this.points[1].y,this.points[2].y,this.points[3].y); + var y_max=Math.max(this.points[0].y,this.points[1].y,this.points[2].y,this.points[3].y); + return [x_min,y_min,x_max-x_min,y_max-y_min]; + } + this.getX1Y1X2Y2 = function(){ + var x_min=Math.min(this.points[0].x,this.points[1].x,this.points[2].x,this.points[3].x); + var x_max=Math.max(this.points[0].x,this.points[1].x,this.points[2].x,this.points[3].x); + var y_min=Math.min(this.points[0].y,this.points[1].y,this.points[2].y,this.points[3].y); + var y_max=Math.max(this.points[0].y,this.points[1].y,this.points[2].y,this.points[3].y); + return [x_min,y_min,x_max,y_max]; + } + this.getdiapid = function(pid){//获取对角点 + var twooverlapped,fouroverlapped; + for (var i=0;i<4;i++){ + if ((this.points[pid].x!=this.points[i].x)&&(this.points[pid].y!=this.points[i].y)){ + return i; + } + if ((this.points[pid].x!=this.points[i].x)||(this.points[pid].y!=this.points[i].y)){ + twooverlapped=i; + } + if (i!=pid) fouroverlapped=i; + + } + if (twooverlapped) + return twooverlapped; + return fouroverlapped; + } + this.mouseonpoint = false; + this.mouseonrect = false; + this.isSelected = false; + this.id =""; //标识 + this.blurred=false;//模糊不清的; 记不清的; 难以区分的; 模棱两可的 + this.goodIllumination = true; //照明 + this.frontview = true;//正面图 + this.other = {};//自定义属性 + this.other['region_attributes'] = {}; + //{} -> key = "type" , value = {"type":"dropdown,radio,checkbox", "description" : "..", "options":{"car" : "car", "person" : "person"}, "default_options" : {"car" : "car"}} + // key = "color", value = {"type" : "text", "description" : "..", "def":"11111"} +}; + + + +function maskar(x0,y0,type,score=1.0){ + this.type = type; + this.points = [new point(x0,y0)]; + this.finish = false; + this.mouseonpoint = false; + this.mouseonmask = false; + this.isSelected = false; + this.score = score; + this.getX1Y1 = function(){return [this.points[0].x,this.points[0].y]} + this.getBound = function(){ + mlen = this.points.length; + var minX = 999999999, minY = 999999999, maxX = -1, maxY = -1; + for (var i = 0; i < mlen; i ++){ + if(minX > this.points[i].x){ + minX = this.points[i].x; + } + if(maxX < this.points[i].x){ + maxX = this.points[i].x; + } + if(minY > this.points[i].y){ + minY = this.points[i].y; + } + if(maxY < this.points[i].y){ + maxY = this.points[i].y; + } + } + return [minX, minY, maxX, maxY]; + } + + this.id =""; //标识 + this.blurred=false;//模糊不清的; 记不清的; 难以区分的; 模棱两可的 + this.goodIllumination = true; //照明 + this.frontview = true;//正面图 + this.other = {};//自定义属性 + this.other['region_attributes'] = {}; +} + +function getShowShape(recttype){ + var tmp; + if(recttype == "rect"){ + tmp = rects; + }else if(recttype == "mask"){ + tmp = masks; + }else if(recttype == "pointshape"){ + tmp = pointShapes; + } + return tmp; +} + + + +function showPopup(topx,lefty,rectIndex,recttype) { + + if (topx > canvas.height){ + topx = canvas.height; + } + if (lefty > canvas.width){ + lefty = canvas.width; + } + _via_display_area_content_name = VIA_DISPLAY_AREA_CONTENT_NAME.IMAGE; + + regions = getShowShape(recttype); + if(isEmpty(regions)){ + return; + } + _via_is_region_selected = true; + annotation_editor_show(topx,lefty,rectIndex,recttype); + + /* + // 弹框下拉焦点消失 + $("select").bind("focus", function(){ + if(this.blur){ + + this.blur(); + } + }); */ +} + + +//关闭弹窗函数,设置display为none,传一个参数,把true和false传进去 +function hidePopup() { + // document.getElementById("annotation_editor").style.display = "none"; + annotation_editor_remove(); + + for (var i=0;i0){ + if(loadFinished==true){ + loadFinished=false; + updatelabel(fileindex); + } + clearCache(); + fileindex=fileindex-1; + loadimg(); + showfilelist(); + }else{ + var current = $('#displayPage1').text(); + if(current > 1){ + lastindex = true; + if(loadFinished==true){ + loadFinished=false; + updatelabel(fileindex); + } + clearCache(); + prePage(); + lastindex = false; + } + } +} +function clickfilelist(index){ + hidePopup(); + clearCache(); + fileindex = index; + loadimg(); + showfilelist(); + currentImage = false; +} + + +//画布操作、 +// +// +function onpoint(x,y,pt){ + var biasx = Math.abs(x - pt.x); + var biasy = Math.abs(y - pt.y); + if ((biasx<=3) && (biasy<=3)){ + return true; + } + else{ + return false; + } +} +function onrect(x,y,recta){ + rectxywh = recta.getXYWH(); + widthstart=rectxywh[0]; + widthend=rectxywh[0]+rectxywh[2]; + + heightstart=rectxywh[1]; + heightend=rectxywh[1]+rectxywh[3]; + if ((x>=widthstart&&x<(widthend))&&(y>=heightstart)&&(y<(heightend))){ + return true; + } + else{ + return false; + } +} + +function clearboard(){ + context.clearRect(0, 0, canvas.width, canvas.height); +} + +function fillMask(mask){ + context.beginPath(); + context.moveTo(bigLocX(mask.points[0].x), bigLocY(mask.points[0].y)); + for (var i=1; i y) != (yj > y)) + && (x < (xj - xi) * (y - yi) / (yj - yi) + xi); + if (intersect) inside = !inside; + } + + return inside; +}; + + +function drawRect(x=null,y=null,resize=0) { + //document.getElementById("boxlabels").innerHTML=boxlabelshtml(); + //document.getElementById("labelcounttable").innerHTML=boxlabelcounthtml(); + + + //清除画布,准备绘制 + context.clearRect(0, 0, canvas.width, canvas.height); + + var imgWidth = canvas.width; + var imgHeight = canvas.height + if(imgScale > 1){//当没有放大时,就用画布的大小 + imgWidth = canvas.width * imgScale; + imgHeight = canvas.height * imgScale; + } + + //console.log("startx=" + startx + " starty=" + starty + " img.width=" + img.width + " imgWidth=" + imgWidth + " imgScale=" + imgScale + " img.width / (canvas.width * imgScale)=" + (img.width / (canvas.width * imgScale))); + context.drawImage( + img, //规定要使用的图像、画布或视频。 + startx, starty, //开始剪切的 x 坐标位置。 + img.width, img.height, //被剪切图像的高度。 + //imgWidth, imgHeight, + 0, 0,//在画布上放置图像的 x 、y坐标位置。 + imgWidth, imgHeight //要使用的图像的宽度、高度 + //canvas.width,canvas.height + ); + + //context.drawImage(img, 0, 0, imgWidth, imgHeight, 0, 0, canvas.width, canvas.height); + //context.drawImage(img,0,0,canvas.width,canvas.height); + + //遍历画所有矩形框 + drawRectShape(); + + //创建Rect时,显示横竖两条黑线 + if (tocreaterect && (x!=-1)){ + //row + context.strokeStyle="black" + context.beginPath(); + context.moveTo(0,y); + context.lineTo(canvas.width,y); + + context.moveTo(x,0); + context.lineTo(x,canvas.height); + context.stroke(); + context.closePath(); + } + //遍历画所有Mask矩形框 + drawMaskShape(x,y); + + //遍历画所有的圆点 + drawPointShape(); + +} + +function drawPointShape(){ + for(var i = 0; i < pointShapes.length; i++){ + context.strokeStyle="yellow"; + selectColor(pointShapes,i); + context.beginPath();//标志开始一个路径 + context.arc(bigLocX(pointShapes[i].x),bigLocY(pointShapes[i].y),5,0,2*Math.PI);//在canvas中绘制圆形 + if(pointShapes[i].isSelected){ + console.log("choose a point."); + context.fillStyle = "rgba(97, 216, 162, 0.5)"; + context.fill(); + } + context.stroke() + } +} + +function bigLocX(x){ + var tmp = img.width / (canvas.width * imgScale); + return x * imgScale - startx/tmp ; +} + +function bigLocY(y){ + var tmp = img.height / (canvas.height * imgScale); + return y * imgScale - starty /tmp; +} + +function smallLocX(x){ + var tmp = img.width /canvas.width; + return x / imgScale + startx/tmp; +} + +function smallLocY(y){ + var tmp = img.height /canvas.height; + return y / imgScale + starty / tmp; +} + + +//画所有矩形框 +function drawRectShape(){ + + var drawLineWidth = 1; + for(var i=0; i=0; i--) { + var mask = masks[i]; + var maskpoints = mask.points + for (var j=0;j=0; i--) { + var mask = masks[i]; + + if (onmask_new(smallLocX(clickX),smallLocY(clickY),mask)){ + Selectedmask = mask; + console.log("at mask.clickX=" + clickX + " clicky=" + clickY); + mask.isSelected=true; + Selectedmask = mask; + + // 允许被拉伸 + stretch_mask =true; + //允许拖动 + isDragging = true; + + old_click_x1=clickX; + old_click_y1=clickY; + + //更新显示 + drawRect(); + + //弹出标注信息框 + var bound = mask.getBound(); + var new_region_id =i; + regions = masks; + select_only_region(new_region_id); + showPopup(bigLocY(bound[3])+5, bigLocX(bound[2])+5,i,"mask"); + // showPopup(bigLocY(bound[3])+145, bigLocX(bound[2]) + 235,i,"mask"); + document.getElementById("boxlabels").innerHTML=boxlabelshtml(); + document.getElementById("labelcounttable").innerHTML=boxlabelcounthtml(); + + //停止搜索 + return true; + }else{ + //console.log("not at mask.clickX=" + clickX + " clicky=" + clickY); + } + } + return false; +} + +function clickPointInRect(clickX,clickY){ + + // //查看点击的点是否是Rect的标注点,如果是,则着重显示该点。 + for(var i=rects.length-1; i>=0; i--) { + var rect = rects[i]; + var rectpoints = rect.points + for (var j=0;j=0; i--) { + var rect = rects[i]; + if (onrect(smallLocX(clickX),smallLocY(clickY),rect)){ + SelectedRect = rect; + + old_click_x1=clickX; + old_click_y1=clickY; + + //选择新圆圈 + rect.isSelected = true; + //允许拖拽 + isDragging = true; + //更新显示 + drawRect(); + xy = rect.getX1Y1X2Y2(); + console.log("choose rect 2: top=" + clickX + " left=" + clickY + " x1=" + xy[0] + " y1=" + xy[1] + " x2=" + xy[2] + " y2=" + xy[3] + " startx=" + startx + " starty=" + starty); + select_only_region(i); + showPopup(bigLocY(xy[1])+5, bigLocX(xy[2])+5 , i,"rect"); + // showPopup(bigLocY(xy[3])+145, bigLocX(xy[2]) + 235,i,"rect"); + document.getElementById("boxlabels").innerHTML=boxlabelshtml(); + document.getElementById("labelcounttable").innerHTML=boxlabelcounthtml(); + //停止搜索 + return true; + } + } + return false; +} + +function clickPointInPointShape(clickX,clickY){ + var t = -1; + for(var i = 0; i < pointShapes.length; i++){ + if (onpoint(smallLocX(clickX),smallLocY(clickY),pointShapes[i])){ + console.log("clickX=," + clickX + "clickY=," + clickY + " pointShapes[i].x=" + + pointShapes[i].x + "pointShapes[i].y=" + pointShapes[i].y); + pointShapes[i].isSelected=true; + SelectedPointShape = pointShapes[i]; + t = i; + }else{ + pointShapes[i].isSelected=false; + } + } + if( t >= 0){ + drawRect(); + select_only_region(t); + showPopup(bigLocY(SelectedPointShape.y) +5, bigLocX(SelectedPointShape.x) +5,t,"pointshape"); + // showPopup(bigLocY(SelectedPointShape.y) + 165, bigLocX(SelectedPointShape.x) + 250,t,"pointshape"); + //showPopup(bigLocY(SelectedPointShape.y) + 165, bigLocX(SelectedPointShape.x) + 250,t,"pointshape"); + document.getElementById("boxlabels").innerHTML=boxlabelshtml(); + document.getElementById("labelcounttable").innerHTML=boxlabelcounthtml(); + return true; + } + return false; +} + + +//交互 +//画布内鼠标响应操作 +function canvasClick(e) { + // 取得画布上被单击的点 + + + + var clickX = e.pageX - getElementLeft(canvas); + var clickY = e.pageY - getElementTop(canvas); + + var smallClickX = smallLocX(clickX); + var smallClickY = smallLocY(clickY); + + if (tocreaterect){ + var rect=new rectar(smallClickX,smallClickY,smallClickX,smallClickY,boxcls); + rects.push(rect); + console.log("draw rect...10"); + showpopVar = true; + tocreaterect=false; + hidePopup(); + undoShape = rect; + } + if (tocreatemask){ + showpopVar = true; + hidePopup(); + if (creatingmask == null){ + var mask=new maskar(smallClickX,smallClickY,boxcls); + masks.push(mask); + Selectedmask = mask; + creatingmask = mask; + } + else{ + if (onpoint(smallClickX,smallClickY,creatingmask.points[0])){ + Selectedmask.finish=true; + creatingmask=null; + tocreatemask=false; + drawRect(); + var new_region_id =masks.length-1; + var bound = masks[new_region_id].getBound(); + regions = masks; + set_region_annotations_to_default_value( new_region_id ); + select_only_region(new_region_id); + showPopup(bigLocY(bound[3])+5, bigLocX(bound[2])+5,new_region_id,"mask"); + // showPopup(bigLocY(bound[3])+145, bigLocX(bound[2]) + 235,i,"mask"); + document.getElementById("boxlabels").innerHTML=boxlabelshtml(); + document.getElementById("labelcounttable").innerHTML=boxlabelcounthtml(); + undoShape = masks[new_region_id]; + resetSelectShapeEmpty(); + return; + } + creatingmask.points.push(new point(smallClickX,smallClickY)) + } + } + + if(toCreatePoint){ + console.log("point x,y=" + clickX + "," + clickY); + var pointObj = new pointShape(smallClickX,smallClickY,boxcls); + pointShapes.push(pointObj); + var len_points = pointShapes.length; + var new_region_id =len_points-1; + regions = pointShapes; + set_region_annotations_to_default_value(new_region_id); + toCreatePoint = false; + undoShape = pointShapes[new_region_id]; + } + //将选择信息设置为空,在下面重新查找设置 + resetSelectShapeEmpty(); + + if(clickPointInPointShape(clickX,clickY)){ + return; + } + + //如果点在Mask内,已经画完了,则返回。 + if(clickPointInMask(clickX,clickY)){ + return; + } + //如果点在Rect内,已经画完了,则返回。 + if(clickPointInRect(clickX,clickY)){ + return; + } + + //如果点不在标注区域内 + drawRect(clickX,clickY); + hidePopup(); + + dragging = true; + old_click_x1 = clickX; + old_click_y1 = clickY; +} + + +function dragRect(e) { + // 取得鼠标位置 + var x = e.pageX - getElementLeft(canvas); + var y = e.pageY - getElementTop(canvas); + + var smallX = smallLocX(x); + var smallY = smallLocY(y); + + if (tocreaterect || tocreatemask){ + drawRect(x,y); + } + + //悬停变色 + var found=false; + for(var i=rects.length-1; i>=0; i--) { + var rect = rects[i]; + var rectpoints = rect.points + for (var j=0;j=0; i--) { + var mask = masks[i]; + var maskpoints = mask.points + for (var j=0;j=0; i--) { + var rect = rects[i]; + if (onrect(smallX,smallY,rect)){ + if (mouseonrect_rect) {mouseonrect_rect.mouseonrect=false;} + rect.mouseonrect=true; + mouseonrect_rect = rect; + //更新显示 + drawRect(x,y); + //停止搜索 + found=true; + break; + } + } + + for(var i=masks.length-1; i>=0; i--) { + var mask = masks[i]; + var maskpoints = mask.points + if (onmask_new(smallX,smallY,mask)){ + if (mouseonmask_mask) {mouseonmask_mask.mouseonmask=false;} + mask.mouseonmask=true; + mouseonmask_mask = mask; + //更新显示 + drawRect(x,y); + //停止搜索 + found=true; + break; + } + } + + if((!found)&& (mouseonrect_rect!=null)){ + mouseonrect_rect.mouseonrect=false; + mouseonrect_rect=null; + drawRect(x,y); + } + + if((!found)&& (mouseonmask_mask!=null)){ + mouseonmask_mask.mouseonmask=false; + mouseonmask_mask=null; + drawRect(x,y); + } + } + + // 判断矩形是否开始拖拽 + if (isDragging == true) { + // 判断拖拽对象是否存在 + if (SelectedRect != null) { + // 将圆圈移动到鼠标位置 + //console.log("old(" + old_click_x1 + "," + old_click_y1 +") new(" + x + "," + y + ")"); + moverect(SelectedRect, x-old_click_x1, y-old_click_y1); + old_click_x1 = x; + old_click_y1 = y; + // 更新画布 + drawRect(); + }else if(Selectedmask != null){ + moveMask(Selectedmask, x-old_click_x1, y-old_click_y1); + old_click_x1 = x; + old_click_y1 = y; + // 更新画布 + drawRect(); + } + hidePopup(); + } + //判断是否开始拉伸 + if (stretch) { + stretchrect(SelectedRect, SelectedpointId, smallLocX(x), smallLocY(y)); + drawRect(); + document.getElementById("boxlabels").innerHTML=boxlabelshtml(); + document.getElementById("labelcounttable").innerHTML=boxlabelcounthtml(); + + } + //判断mask是否开始拉伸 + if (stretch_mask && SelectedmaskpointId != null) { + stretchmask(Selectedmask, SelectedmaskpointId, smallLocX(x), smallLocY(y)); + drawRect(); + } + if(dragging){ + var dx = x - old_click_x1; + var dy = y - old_click_y1; + + startx -= dx; + starty -= dy; + console.log("x=" + x + " y=" + y + " move x=" + dx + " move y=" + dy + " startx=" +startx + ",starty=" + starty); + drawRect(); + old_click_x1 = x; + old_click_y1 = y; + } + }; + +function stopDragging() { + isDragging = false; + dragging = false; + stretch=false; + stretch_mask=false; + //console.log("choose rect 10:") + if (tocreaterect) { + drawRect(-1,-1); + } + if(showpopVar){ + showpopVar= false; + document.getElementById("boxlabels").innerHTML=boxlabelshtml(); + document.getElementById("labelcounttable").innerHTML=boxlabelcounthtml(); + for(var i=rects.length-1; i>=0; i--) { + var rect = rects[i]; + if (rect.isSelected){ + xy = rect.getX1Y1X2Y2(); + console.log("create rect show: x1=" + xy[0] + " y1=" + xy[1] + " x2=" + xy[2] + " y2=" + xy[3] + " startx=" + startx + ",starty=" + starty); + // wang + // var original_img_region = new file_region(); + var new_region_id =i; + regions = rects; + set_region_annotations_to_default_value( new_region_id ); + select_only_region(new_region_id); + showPopup(bigLocY(xy[3])+5, bigLocX(xy[2])+5 , i,"rect"); + + // showPopup(bigLocY(xy[3])+145, bigLocX(xy[2]) + 235, i,"rect"); + //停止搜索 + return; + } + } + + + for(var i=masks.length-1; i>=0; i--) { + var mask = masks[i]; + if (mask.isSelected && mask.finish){ + var new_region_id =i; + regions = masks; + select_only_region(new_region_id); + set_region_annotations_to_default_value(new_region_id); + var bound = mask.getBound(); + showPopup(bigLocY(bound[3])+5, bigLocX(bound[2])+5 ,i,"mask"); + // showPopup(bigLocY(bound[3])+145, bigLocX(bound[2]) + 235,i,"mask"); + console.log("create mask--show...13"); + //停止搜索 + return; + } + } + + for(var i=pointShapes.length-1; i>=0; i--) { + var pointShape = pointShapes[i]; + if (pointShape.isSelected && pointShape.finish){ + var new_region_id =i; + regions = pointShapes; + select_only_region(new_region_id); + set_region_annotations_to_default_value(new_region_id); + // var bound = mask.getBound(); + showPopup(bigLocY(pointShape.x)+5, bigLocX(pointShape.y)+5 ,i,"pointShapes"); + // showPopup(bigLocY(pointShape.x)+145, bigLocX(pointShape.y) + 235,i,"pointShapes"); + console.log("create mask--show...13"); + //停止搜索 + return; + } + } + + } +}; + +function updateLabelHtml(){ + document.getElementById("boxlabels").innerHTML=boxlabelshtml(); + document.getElementById("labelcounttable").innerHTML=boxlabelcounthtml(); +} + + +//边栏 +//任务信息 +function showtaskinfo(){ + $('#task_info').text(label_task_info.task_name); + $('#task_progress').text(label_task_info.task_status_desc); + var percent=label_task_info.task_status_desc.split('(')[0] + + $("div[role='progressbar']").width(percent) + $("div[role='progressbar']").attr('aria-valuemax',tablePageData.total) + + +} + +var orderType = 1; +var findLast = 0; + +function showOrder(value){ + console.log("--------",value) + hidePopup(); + if (value == "1"){ //文件名排序 + console.log("value=1") + orderType = 1; + findLast = 0; + } + else if (value == "2"){ + console.log("value=2") + orderType = 0; + findLast = 0; + } + else if (value == "3"){ + orderType = 0; + findLast = 3; + } + + page(0,pageSize); +} + +function skipLast(){ + hidePopup(); + if (orderType == 0){ + return ; + } + findLast = 1; + page(0,pageSize); + +} + +function isVerified(){ + if(userType == 2 && label_task_status == 1){ + return true; + } + return false; +} + +//显示文件列表 +function showfilelist(){ + var htmlstr=""; + for (var i=0;i "+""+finish +""+""+ fname+ ""; + }else{ + htmlstr = htmlstr+""+fname+""+""+""; + } + + }; + document.getElementById("filelist").innerHTML=htmlstr; +} + +function changeStatus(i){ + var tmpId='changeStatus_'+i; + var htmlstr= "
" + +""+ + ""+ + "" + +"
" + + document.getElementById("labelStatus").innerHTML=htmlstr; +} + +// function changeStatus(i){ +// var tmpId='changeStatus_'+i; +// var htmlstr= "
" +// +""+ +// ""+ +// "
"+ +// "" +// +"
" + +// document.getElementById("labelStatus").innerHTML=htmlstr; +// } + +function changeVerifyStatus(i){ + var tmpId='changeStatus_'+i; + var htmlstr= "
" + +""+ + ""+ + "
"+ + "" + +"
" + + document.getElementById("labelStatus").innerHTML=htmlstr; +} + +function updateStatus(i){ + var status_id = 'changeStatus_'+i; + var label_status=document.getElementById(status_id).value; + labeltastresult[fileindex].label_status = label_status; + $.ajax({ + type:"PATCH", + url:ip + "/gitea/label-task-item-status/", + contentType:'application/json', + headers: { + authorization:token, + }, + dataType:"json", + async:false, + data:JSON.stringify({'id':labeltastresult[fileindex].id, + 'label_task_id':label_task_info.id, + 'label_status':label_status, + }), + success:function(json){ + showfilelist(); + document.getElementById("labelStatus").innerHTML = ""; + return true; + }, + error:function(response) { + redirect(response); + } + }); + + +} + +function updateVerifyStatus(i){ + var status_id = 'changeStatus_'+i; + var verify_status=document.getElementById(status_id).value; + labeltastresult[fileindex].verify_status = verify_status; + $.ajax({ + type:"PATCH", + url:ip + "/gitea/label-task-item-verify-status/", + contentType:'application/json', + headers: { + authorization:token, + }, + dataType:"json", + async:false, + data:JSON.stringify({'id':labeltastresult[fileindex].id, + 'label_task_id':label_task_info.id, + 'verify_status':verify_status, + }), + + success:function(json){ + showfilelist(); + document.getElementById("labelStatus").innerHTML = ""; + return true; + }, + error:function(response) { + redirect(response); + } + }); + +} + + //this.id =""; //标识 + //this.blurred=false;//模糊不清的; 记不清的; 难以区分的; 模棱两可的 + //this.goodIllumination = true; //照明 + //this.frontview = true;//正面图 +function parse_labelinfo(labelinfo){ + rects.length = 0; + masks.length = 0; + pointShapes.length = 0; + if(!isEmpty(labelinfo)){ + // console.log("标注信息:"+labelinfo); + var label_arr = JSON.parse(labelinfo); + + for(var i=0;i "+ tmpType + "" + shapetype + "" + shapeswidthHeigth + ""; +} +function setStyle(rectIndex,shapetype){ + for (var i=0;i "+ item + "" + labelMap[item] +""; + } + return htmlstr; +} + + + +function getRealLocationX(num){ + var loc = Math.round(num*img.width/canvas.width); + // if (img.width<600){ + // loc = Math.round(num); + // } + if(loc <= 0){ + loc = 1; + } + if(loc > img.width){ + loc = img.width -1; + } + return loc; +} + +function getRealLocationY(num){ + var loc = Math.round(num*img.height/canvas.height); + // if (img.width<600){ + // loc = Math.round(num); + // } + if(loc <= 0){ + loc = 1; + } + if( loc > img.height){ + loc = img.height -1; + } + return loc; +} + +function getCanvasLocationX(num){ + return Math.round(num*canvas.width/parseInt(img.width)); +} + +function getCanvasLocationY(num){ + return Math.round(num*canvas.height/parseInt(img.height)); +} + +function setAutoModel(){ + hidePopup(); + loadModel(); + display_createlabel(); +} + +var algModelList; +function loadModel(){ + + $.ajax({ + type:"GET", + contentType:'application/json', + url: ip + "/api/queryAlgModelForHandLabel/", + dataType:"json", + async:false, + headers: { + // Accept: "text/html; q=1.0", + authorization:token, + }, + // enctype:"multipart/form-data", + success:function(jsonList){ + console.log(jsonList); + algModelList = jsonList; + // return json.token; + }, + error:function(response) { + redirect(response); + } + }); +} + +function display_createlabel(){ + var html=""; + for (var i=0;i"+algModelList[i].model_name+ + ""; + } + else{ + var row = ""; + } + + + html=html+row; + } + console.log(html); + $('#tracking_startid').val('1'); + $('#tracking_endid').val(tablePageData.total); + document.getElementById('predict_model').innerHTML=html; + document.getElementById("tracking_startid_div").style.display="none"; + document.getElementById("tracking_endid_div").style.display="none"; + document.getElementById("label_id_div").style.display="none"; + document.getElementById("labelOption_div").style.display="none"; + //document.getElementById("labelOption").innerHTML=" "; + document.getElementById('predtask_id').disabled=false; + + $('#label_id').val('1'); + + bar.style.width='1%'; + document.getElementById('text-progress').innerHTML='0%'; +} + +function submit_predtask(){ + var item_id = labeltastresult[fileindex].id; + var predict_model_val = $('#predict_model').val(); + if(isEmpty(predict_model_val)){ + alert("请选择标注任务使用的模型。"); + return; + } + if(labeltastresult[fileindex].label_status == 0 && !(predict_model_val == 12 || predict_model_val == 16 || predict_model_val == 20 || predict_model_val == 21)){ + alert("标注状态已经完成,不能进行自动检测。"); + return; + } + var task_type = "1"; + var start_id = 0; + var end_id = 0; + var label_id = 1; + var label_option = null; + if(predict_model_val == 12 || predict_model_val == 16 || predict_model_val == 20 || predict_model_val == 21){ + task_type = "2"; + start_id = $('#tracking_startid').val(); + end_id = $('#tracking_endid').val(); + label_id = $('#label_id').val(); + if(start_id < 1 || start_id > tablePageData.total){ + alert("请输入正确的追踪起始图片ID,范围为1到" + tablePageData.total); + return; + } + + if(end_id < 1 || end_id > tablePageData.total){ + alert("请输入正确的追踪结束图片ID,范围为1到" + tablePageData.total); + return; + } + if(label_id < 1){ + alert("标注框ID为大于等于1的整数。"); + return; + } + } + document.getElementById('predtask_id').disabled=true; + $.ajax({ + type:"POST", + url:ip + "/gitea/auto-label-task", + contentType:'application/json', + headers: { + authorization:token, + }, + dataType:"json", + async:false, + data:JSON.stringify({'label_task_id':item_id, + 'model':predict_model_val, + 'pic_object_name' : img.width + "," + img.height, + 'task_type':task_type, + 'startIndex':start_id, + 'endIndex':end_id, + 'taskId':label_task, + 'label_id':label_id, + 'label_option':label_option + }), + success:function(res){ + console.log('创建数据信息'); + }, + error:function(response) { + redirect(response); + } + }); + + setIntervalToDo(); +} + +var timeId; +var count; +var progress; + +function setIntervalToDo(){ + count=0; + timeId = self.setInterval("clock()",1000);//5秒刷新 + console.log("开始刷新。timeId=" + timeId); +} + +function clock(){ + count++; + if(count > 600 ){ + console.log("清除定时器。timeId=" + timeId); + window.clearInterval(timeId); + timeId = null; + $("#autoLabel").modal('hide'); + return; + } + + $.ajax({ + type:"GET", + url:ip + "/api/query-auto-label-task-progress/", + headers: { + authorization:token, + }, + dataType:"json", + data:{'taskId': label_task}, + async:false, + success:function(json){ + progress = json; + console.log(json); + }, + error:function(response) { + progress = null; + console.log("query progress error"); + redirect(response); + } + }); + if(isEmpty(progress)){ + console.log("清除定时器。timeId=" + timeId); + bar.style.width='100%'; + document.getElementById('text-progress').innerHTML='100%'; + window.clearInterval(timeId); + timeId = null; + var current = $('#displayPage1').text(); + $("#autoLabel").modal('hide'); + console.log("开始获取结果。current=" + current); + if(current >= 1){ + pageReload(current - 1,pageSize,fileindex); + } + }else{ + //更新进度 + var iSpeed = progress.progress; + bar.style.width=iSpeed+'%'; + document.getElementById('text-progress').innerHTML=iSpeed+'%' + } + /* + var current = $('#displayPage1').text(); + console.log("开始刷新。current=" + current); + if(current >= 1){ + pageReload(current - 1,pageSize,fileindex); + if(!isEmpty(labeltastresult[fileindex].label_info)){ + window.clearInterval(timeId); + timeId = null; + } + } + */ +} + +function submit_deletelabel(){ + + var start_id = $('#delete_startid').val(); + var end_id = $('#delete_endid').val(); + if(start_id < 1 || start_id > tablePageData.total){ + alert("请输入正确的起始图片ID,范围为1到" + tablePageData.total); + return; + } + + if(end_id < 1 || end_id > tablePageData.total){ + alert("请输入正确的结束图片ID,范围为1到" + tablePageData.total); + return; + } + //var one_reid_name = $('#one_reid_name').val(); + $.ajax({ + type:"POST", + url:ip + "/gitea/label-task-delete-label", + headers: { + authorization:token, + }, + dataType:"json", + async:false, + data:{'label_task_id':label_task_info.id, + 'start_id':start_id, + 'end_id' : end_id + //'one_reid_name':one_reid_name + }, + success:function(res){ + console.log('创建数据信息'); + }, + error:function(response) { + redirect(response); + } + }); + + $("#deleteLabel").modal('hide'); + var current = $('#displayPage1').text(); + + if(current >= 1){ + pageReload(current - 1,pageSize,fileindex); + } + +} + + +function updatelabel(fileindex){ + var label_list=[] + for (var i=0;i 0){ + labeltastresult[fileindex].label_status=0; + } + else{ + labeltastresult[fileindex].label_status=1; + } + } + + $.ajax({ + type:"PATCH", + url:ip + "/gitea/label-task-item/", + contentType:'application/json', + headers: { + authorization:token, + }, + dataType:"json", + async:false, + data:JSON.stringify({'id':labeltastresult[fileindex].id, + 'label_task_id':label_task_info.id, + 'label_info':labelinfo_jsonstr, + 'label_status': labeltastresult[fileindex].label_status, + 'verify_status': labeltastresult[fileindex].verify_status, + 'pic_object_name' : img.width + "," + img.height, + 'display_order2':flag + }), + + success:function(json){ + return true; + }, + error:function(response) { + redirect(response); + } + }); + return false; +} + +function get_labeltask(){ + console.log('query labeltask info.'); + $.ajax({ + type:"GET", + url:ip + "/gitea/label-task/"+label_task+"/", + headers: { + authorization:token, + }, + dataType:"json", + async:false, + success:function(json){ + label_task_info = json; + console.log('return labeltask info.' + label_task_info); + page(0,pageSize); + }, + error:function(response) { + redirect(response); + } + }); +} + + + function update_labeltask(task_label_type_info){ + console.log("label_task_id=" + label_task_info.id); + console.log("task_label_type_info=" + task_label_type_info); + + $.ajax({ + type:"PATCH", + url:ip + "/gitea/label-task/", + headers: { + authorization:token, + }, + dataType:"json", + data:{ + 'label_task_id':label_task_info.id, + 'task_label_type_info':task_label_type_info, + }, + async:false, + success:function(json){ + console.log(json); + }, + error:function(response) { + redirect(response); + } + }); + } + + +function list(current,pageSize,index=0){ + $.ajax({ + type:"GET", + url:ip + "/gitea/label-task-item-page/", + headers: { + authorization:token, + }, + dataType:"json", + data:{ + 'label_task':label_task_info.id, + 'startPage':current, + 'pageSize':pageSize, + 'orderType': orderType, + 'findLast':findLast, + }, + async:false, + success:function(json){ + tablePageData = json; + tableData = json.data; + labeltastresult = tableData; + fileindex=index; + if(lastindex){ + fileindex = pageSize - 1; + } + //console.log(json); + // return json.token; + }, + error:function(response) { + redirect(response); + } + }); +} + +var pageSize = 20; +var tableData; +var tablePageData; + +function pageReload(current,pageSize,fileindex){ + list(current,pageSize,fileindex); + loadimg(); + showtaskinfo(); + showfilelist(); + + //display_list(); + setPage(tablePageData,pageSize); +} + +function page(current,pageSize){ + list(current,pageSize); + loadimg(); + showtaskinfo(); + showfilelist(); + + //display_list(); + setPage(tablePageData,pageSize); +} + +function nextPage(){ + hidePopup(); + var current = $('#displayPage1').text(); + console.log("current=" + current); + findLast = 0; + page(current,pageSize); +} + +function prePage(){ + hidePopup(); + var current =$('#displayPage1').text(); + console.log("current=" + current); + if(current > 1){ + console.log("current=" + (current - 2)); + findLast = 0; + page(current - 2,pageSize); + } +} + +function goPage(){ + hidePopup(); + var goNum = $('#goNum').val(); + findLast = 0; + var pageTotal = $("#totalNum").text(); + var pageNum = parseInt(pageTotal/pageSize); + if(pageTotal%pageSize!=0){ + pageNum += 1; + }else { + pageNum = pageNum; + } + if (goNum<=0){ + alert("请输入大于0的数值"); + } + else if(goNum<=pageNum){ + page(goNum - 1,pageSize); + } + else{ + alert("不能超出总页码!"); + } +} + +$("#goNum").keydown(function (e) { + if (e.keyCode == 13) { + goPage(); + } +}); + +function setPage(pageData,pageSize){ + var startIndex = pageData.current * pageSize; + if(startIndex < 10){ + $('#startIndex').text(" " + (pageData.current * pageSize + 1)); + }else{ + $('#startIndex').text(pageData.current * pageSize + 1); + } + var endIndex = pageData.current * pageSize + pageData.data.length; + if(endIndex < 10){ + $('#endIndex').text(" " + (pageData.current * pageSize + pageData.data.length)); + }else{ + $('#endIndex').text(pageData.current * pageSize + pageData.data.length); + } + + $('#totalNum').text(pageData.total); + $('#displayPage1').text(pageData.current + 1); + + console.log("set prePage status, pageData.current=" + pageData.current); + + if(pageData.current == 0){ + console.log("set prePage disabled."); + $('#prePage').removeAttr("href"); + $('#prePage').attr('style','color:#000;margin-right:1em;'); + } + else{ + $('#prePage').attr("href","javascript:prePage()"); + $('#prePage').attr('style','color:#f5f5f6;margin-right:1em;'); + } + + if((pageData.current + 1) * pageSize >= pageData.total){ + console.log("set nextPage disabled."); + $('#nextPage').removeAttr("href"); + $('#nextPage').attr('style','color:#000;margin-left:1em;') + } + else{ + $('#nextPage').attr("href","javascript:nextPage()"); + $('#nextPage').attr('style','color:#f5f5f6;margin-left:1em;'); + } + + var pageTotal = pageData.total; + var pageNum = parseInt(pageTotal/pageSize); + if(pageTotal%pageSize!=0){ + pageNum += 1; + }else { + pageNum = pageNum; + } + $("#totalPageNum").text(pageNum); + +} + + init_index(); + // canvas = document.getElementById("myCanvas"); + // context = canvas.getContext("2d"); + // var maxWidth = document.getElementById("showPic").offsetWidth; + // var maxHeight = document.getElementById("showPic").offsetHeight-100; + // canvas.width = maxWidth;//document.getElementById("tool0").offsetWidth; + // canvas.height = maxHeight;//document.getElementById("tool0").offsetWidth/1280*720; + + // show_region = document.getElementById("show_region"); + // show_region.width =document.getElementById("tool0").offsetWidth; + // show_region.height = document.getElementById("tool0").offsetWidth/1280*720; + + function init_index() { + + canvas = document.getElementById("myCanvas"); + context = canvas.getContext("2d"); + maxWidth = document.getElementById("showPic").offsetWidth; + maxHeight = document.getElementById("showPic").offsetHeight-100; + canvas.width = maxWidth; + canvas.height = maxHeight; + + canvas.onmousedown = canvasClick; + canvas.onmouseup = stopDragging; + canvas.onmouseout = stopDragging; + canvas.onmousemove =dragRect; + + var token = getSessionStorageMessage("token"); + console.log("page load token=" + token); + if(!isEmpty(token)){ + console.log("this is not null.token =" + token); + doLoad(); + } + }; + +function doLoad(){ + token = getSessionStorageMessage("token"); + userType = getSessionStorageMessage("userType"); + + + if(typeof token == "undefined" || token == null || token == ""){ + console.log("token=" + token); + console.log("onload tasks/detect/index.html"); + window.location.href = "../../login.html"; + } + + label_task = getSessionStorageMessage("label_task"); + label_task_status = getSessionStorageMessage("label_task_status"); //1表示审核 + get_labeltask(); + drawRect(); + _via_init(); + //加载保存好的属性结构,如果不存在,加载默认的类别信息 + if(!isEmpty(label_task_info.task_label_type_info)){ + label_attributes = JSON.parse(label_task_info.task_label_type_info); + } + if (isEmpty(label_attributes)){ + get_init_atrribute(); + } + else{ + if (Object.keys(label_attributes).length == 0){ + get_init_atrribute(); + } + else{ + _via_attributes["region"] = label_attributes; + } + } + +} + +function get_init_atrribute(){ + _via_attributes = {'region':{}}; + var atti = "id"; // 属性名 + _via_attributes['region'][atti] = {}; + _via_attributes['region'][atti]["type"] = "text"; + _via_attributes['region'][atti]["description"] = ""; + _via_attributes['region'][atti]["default_value"] = ""; + + atti = "type"; // 属性名 + _via_attributes['region'][atti] = {}; + _via_attributes['region'][atti]["type"] = "dropdown"; + _via_attributes['region'][atti]["description"] = ""; + _via_attributes['region'][atti]["options"] = {}; + _via_attributes['region'][atti]["options"]["car"] = "car"; + _via_attributes['region'][atti]["options"]["person"] = "person"; + _via_attributes['region'][atti]["options"]["non-motor"] = "non-motor"; + _via_attributes['region'][atti]["default_options"] = {}; +} + +function model_sele_Change(event){ + var modelid = $('#predict_model option:selected').val(); + console.log("predict_model=" + modelid); + if(modelid == 12 || modelid == 16 || modelid == 20 || modelid == 21){ + document.getElementById("tracking_startid_div").style.display="block"; + document.getElementById("tracking_endid_div").style.display="block"; + document.getElementById("labelOption_div").style.display="block"; + if(modelid == 12 || modelid == 16){ + document.getElementById("label_id_div").style.display="block"; + }else{ + document.getElementById("label_id_div").style.display="none"; + } + if(modelid == 21){ + document.getElementById("labelOption").innerHTML=" "; + }else if(modelid == 20){ + document.getElementById("labelOption").innerHTML=""; + }else{ + document.getElementById("labelOption").innerHTML=" "; + } + }else{ + + document.getElementById("tracking_startid_div").style.display="none"; + document.getElementById("tracking_endid_div").style.display="none"; + document.getElementById("label_id_div").style.display="none"; + document.getElementById("labelOption_div").style.display="none"; + if(modelid == 5 || modelid == 6 || modelid == 7 ){ + //document.getElementById("labelOption").innerHTML=" "; + } + } +} + +function export_attribute(){ + var url = ip + "/api/task-export-label-property/"; + var $iframe = $('