diff --git a/.Rbuildignore b/.Rbuildignore index ecfc80c..346a7b9 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -7,3 +7,4 @@ ^revdep$ ^.circleci$ ^ci-build$ +^cobertura.xml$ diff --git a/DESCRIPTION b/DESCRIPTION index 3c6c6b2..ad94554 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,28 +1,31 @@ Package: data.world -Title: Main Package for Working with 'data.world' Data Sets -Version: 1.1.1 +Title: Functions and Add-Ins for Working with 'data.world' Data Sets and Projects +Version: 1.2.0 Authors@R: c( person("Rafael", "Pereira", email = "rafael.pereira@data.world", role = c("aut", "cre")), person("Triet", "Le", email = "triet.le@data.world", role = c("aut")), - person("Bryon", "Jacob", email = "bryon.jacob@data.world", role = c("aut"))) -Description: High-level tools for working with data.world data sets. data.world is a community + person("Bryon", "Jacob", email = "bryon.jacob@data.world", role = c("aut")), + person("Scott", "Came", email = "scott@cascadia-analytics.com", role = c("aut"))) +Description: High-level tools for working with 'data.world' data sets. 'data.world' is a platform where you can find interesting data, store and showcase your own data and data projects, and find and collaborate with other members. In addition to exploring, querying and charting data on the data.world site, you can access data via 'API' endpoints and integrations. Use this package to access, query and explore data sets, and to - integrate data into R projects. Visit , for additional information. -Depends: R (>= 3.3.0) -License: Apache License 2.0 -LazyData: TRUE + publish your insights. Visit , for additional information. +Depends: R (>= 3.3.0), dwapi Imports: - dwapi, httr, - ini + ini, + miniUI, + shiny, + stringi Suggests: - testthat, + covr, knitr, + lintr, + readr, rmarkdown, - readr + testthat (>= 2.0.0) License: Apache License 2.0 Encoding: UTF-8 LazyData: true diff --git a/NAMESPACE b/NAMESPACE index ffd1f80..00b151a 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -15,3 +15,15 @@ export(qry_sql) export(query) export(save_config) export(set_config) +importFrom(dwapi,create_insight) +importFrom(dwapi,get_projects_user_contributing) +importFrom(dwapi,get_projects_user_own) +importFrom(dwapi,insight_create_request) +importFrom(dwapi,upload_file) +importFrom(grDevices,dev.copy) +importFrom(grDevices,dev.list) +importFrom(grDevices,dev.off) +importFrom(grDevices,png) +importFrom(graphics,mtext) +importFrom(graphics,plot.new) +importFrom(utils,URLencode) diff --git a/NEWS.md b/NEWS.md index 764b189..9fd77e4 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,8 +1,14 @@ -# 1.1.0 +# 1.2.0 -* Delete all defunct and deprecated functions -* First attempted CRAN release +* Introduce "Add Insight" add-in +* Improve reloading of saved API tokens +* Address compatibility issues with `testthat` 2.0 # 1.1.1 * Address requests from CRAN reviewers related to 1.1.0 + +# 1.1.0 + +* Delete all defunct and deprecated functions +* First attempted CRAN release diff --git a/R/config.R b/R/config.R index f4f2872..8300827 100644 --- a/R/config.R +++ b/R/config.R @@ -1,5 +1,5 @@ "data.world-r -Copyright 2017 data.world, Inc. +Copyright 2018 data.world, Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. @@ -20,7 +20,9 @@ https://data.world" #' #' @param cfg Configuration object. #' @examples +#' data.world::set_config(data.world::cfg_saved()) #' data.world::set_config(data.world::cfg_env()) +#' data.world::set_config(data.world::cfg("YOUR_TOKEN")) #' @export set_config <- function(cfg) { UseMethod("set_config") @@ -67,7 +69,7 @@ set_config.cfg_saved <- function(cfg) { profile <- config[[cfg$profile]] if (!is.null(profile)) { # delegate to default method - data.world::set_config(cfg(auth_token = profile$auth_token)) + set_config(cfg(auth_token = profile$auth_token)) } else { warning( "Configuration profile \"", cfg$profile, @@ -119,7 +121,7 @@ cfg_saved <- function(profile = "DEFAULT") { return(me) } -#' Save configuration to file. +#' Save configuration to file in the user's home directory. #' #' @param auth_token API authorization token. #' @param ... Reserved for future configuration parameters. diff --git a/R/data.world-defunct.R b/R/data.world-defunct.R index 902ea0c..cb9d39d 100644 --- a/R/data.world-defunct.R +++ b/R/data.world-defunct.R @@ -1,5 +1,5 @@ "data.world-r -Copyright 2017 data.world, Inc. +Copyright 2018 data.world, Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. diff --git a/R/data.world.R b/R/data.world.R index 5d019a2..2caf753 100644 --- a/R/data.world.R +++ b/R/data.world.R @@ -1,5 +1,5 @@ "data.world-r -Copyright 2017 data.world, Inc. +Copyright 2018 data.world, Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. @@ -30,6 +30,10 @@ https://data.world" #' Use \code{\link{qry_sql}} and \code{\link{qry_sparql}} to construct query objects and #' to pass parameters to queries. #' +#' @section Add-ins: +#' +#' Use the included "New insight" add-in to publish plots as project insights from R Studio. +#' #' @section REST API: #' #' data.world's REST APIs can be accessed via the \code{dwapi} package. diff --git a/R/insight-addin.R b/R/insight-addin.R new file mode 100644 index 0000000..8a6d7e5 --- /dev/null +++ b/R/insight-addin.R @@ -0,0 +1,225 @@ +"data.world-r +Copyright 2018 data.world, Inc. + +Licensed under the Apache License, Version 2.0 (the \"License\"); +you may not use this file except in compliance with the License. + +You may obtain a copy of the License at +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an \"AS IS\" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied. See the License for the specific language governing +permissions and limitations under the License. + +This product includes software developed at data.world, Inc. +https://data.world" + +#' Driver function for data.world Insight Add-in +#' @keywords internal +#' @importFrom dwapi get_projects_user_own get_projects_user_contributing +#' @importFrom grDevices dev.copy dev.list dev.off png +#' @importFrom graphics mtext plot.new +# nocov start +add_insight_addin <- function() { + + MAX_PROJECT_TITLE_LABEL <- 34 + + api_token <- getOption("dwapi.auth_token") + + if (is.null(api_token)) { + #nolint start + stop(paste0("API authentication must be configured. ", + "To configure, use data.world::set_config(save_config(auth_token = \"YOUR API TOKEN\")) or ", + "dwapi::configure()")) + #nolint end + } + + project_list <- insight_project_filter( + c(get_projects_user_own()$records, + get_projects_user_contributing()$records)) + + project_choice_list <- sapply( + USE.NAMES = FALSE, project_list, function(project) { + paste0(project$owner, "/", project$id) + } + ) + + names(project_choice_list) <- sapply( + USE.NAMES = FALSE, project_list, function(project) { + ret <- paste0(project$owner, "/", project$title) + if (nchar(ret) > MAX_PROJECT_TITLE_LABEL) { + ret <- paste0(substr(ret, 1, MAX_PROJECT_TITLE_LABEL), "...", + collapse = "") + } + ret + } + ) + + ui <- miniUI::miniPage( + + shiny::includeCSS(system.file("dw-bootstrap.css", package = "data.world")), + + shiny::tags$head( + shiny::tags$style( + type = "text/css", + paste(".form-group {font-size: 14px;}", + ".form-control {font-size: 14px;}", + "#done {line-height: 1rem;}", + "#cancel {line-height: 1rem;}", + "#title {font-size: 14px;}", + "#description {font-size: 14px; min-height: 110px;}", + "div.gadget-title {background-color: #fff}", + "div.gadget-content {background-color: #fff}", + sep = "\n" + ) + ), + shiny::tags$link( + rel = "stylesheet", type = "text/css", + href = "http://fonts.googleapis.com/css?family=Lato:300,300i,400,400i,700,700i") # nolint + ), + + miniUI::gadgetTitleBar("Create a new insight", + right = miniUI::miniTitleBarButton("done", + "Create insight", + primary = TRUE)), + miniUI::miniContentPanel( + shiny::fillRow( + shiny::column(12, + shiny::imageOutput("thumb", height = NULL, width = "90%")), + shiny::column(12, + shiny::selectInput("project", "Project:", + choices = c("", project_choice_list)), + shiny::textInput("title", "Title:"), + shiny::textAreaInput("description", "Description:", + height = "85px") + ), + flex = c(5, 3) + ) + ) + ) + + server <- function(input, output, session) { + + current_plot_exists <- "RStudioGD" %in% names(dev.list()) + + shiny::observeEvent(input$done, { + + if (current_plot_exists) { + save_image_as_insight(input$project, input$title, input$description, + session$userData$f) # nolint + } else { + writeLines("Nothing to do...no current plot") + } + shiny::stopApp() + }) + + output$thumb <- shiny::renderImage(deleteFile = FALSE, { + + tf <- tempfile(fileext = ".png") + session$userData$f <- tf # nolint + + if (current_plot_exists) { + dev.copy(png, filename = tf, height = 300, width = 467) + dev.off() + } else { + png(filename = tf, height = 300, width = 467) + plot.new() + mtext("No current plot available") + dev.off() + } + + list(src = tf, alt = "Plot thumb") + + }) + + output$logo <- shiny::renderImage(deleteFile = FALSE, { + list(src = system.file("dw-logo@2x.png", package = "data.world"), + alt = "logo") + }) + + } + + viewer <- shiny::dialogViewer("New insight", height = 380, width = 850) + shiny::runGadget(ui, server, viewer = viewer) + +} +# nocov end + +#' Filter the specified list of projects to those suitable for selection in +#' the add-in +#' @param project_list the list of projects +#' @return the list filtered for those suitable for selection +#' @keywords internal +insight_project_filter <- function(project_list) { + + project_list <- lapply(project_list, function(project) { + ret <- NULL + if (project[["accessLevel"]] %in% c("ADMIN", "WRITE")) { + ret <- project + } + ret + } + ) + + project_list[sapply(project_list, function(item) { + !is.null(item) + })] + +} + +#' Save an image file as a data.world insight +#' @param project_id the fully-qualified id of the project to house the insight +#' @param title the title of the insight +#' @param description the description of the insight (optional) +#' @param image_file the file path containing the image +#' @return a list containing the values returned by the upload_file and +#' create_insight dwapi functions +#' @importFrom dwapi upload_file create_insight insight_create_request +#' @importFrom utils URLencode +#' @keywords internal +save_image_as_insight <- function(project_id, title, description=NULL, + image_file) { + + if (is.null(project_id) || project_id == "") { + stop("project_id cannot be null") + } + + if (!grepl(x = project_id, pattern = "(.+)/(.+)")) { + stop("project_id invalid: must be ownerid/projectid") + } + + if (is.null(title)) { + stop("title cannot be null") + } + + fn <- paste0(title, ".png") + + upload_result <- upload_file(project_id, image_file, fn) + + unlink(image_file) + + project_parts <- unlist(stringi::stri_split(project_id, regex = "/")) + + image_url <- paste0("https://data.world/api/", + project_parts[1], + "/", "dataset", "/", + project_parts[2], + "/", "file", "/", "raw", "/", + URLencode(fn)) + + insight_result <- create_insight( + project_parts[1], project_parts[2], + insight_create_request(title, description, image_url)) + + ret <- list(upload_result = upload_result, insight_result = insight_result) + + writeLines(paste0( + "Successfully created insight ", title, " within project ", + project_id + )) + + ret + +} diff --git a/R/query.R b/R/query.R index 30db8b5..a28c4e9 100644 --- a/R/query.R +++ b/R/query.R @@ -1,5 +1,5 @@ "data.world-r -Copyright 2017 data.world, Inc. +Copyright 2018 data.world, Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. @@ -35,7 +35,7 @@ query.default <- function(qry, ...) { #' @describeIn query Execute a SQL query on data.world. #' @examples #' \dontrun{ -#' sql_stmt <- data.world::sql("SELECT * FROM Tables") +#' sql_stmt <- data.world::qry_sql("SELECT * FROM Tables") #' query_results_df <- data.world::query( #' sql_stmt, "jonloyens/an-intro-to-dataworld-dataset") #' } @@ -57,6 +57,15 @@ query.qry_sql <- function(qry, ...) { } #' @describeIn query Execute a SPARQL query on data.world. +#' @examples +#' \dontrun{ +#' sparql_stmt <- data.world::qry_sparql("SELECT ?s ?p ?o +#' WHERE { +#' ?s ?p ?o. +#' }") +#' query_results_df <- data.world::query( +#' sparql_stmt, "jonloyens/an-intro-to-dataworld-dataset") +#' } #' @export query.qry_sparql <- function(qry, ...) { # Internal function to help unpack '...' param @@ -77,7 +86,11 @@ query.qry_sparql <- function(qry, ...) { #' #' @param query_string SQL query string. #' @param params Sequence of positional query parameters. -#' @return Object of type \code{sql}. +#' @return Object of type \code{qry_sql}. +#' @examples +#' \dontrun{ +#' sql_stmt <- data.world::qry_sql("SELECT * FROM Tables") +#' } #' @export qry_sql <- function(query_string, params = NULL) { me <- list(query_string = query_string, params = params) @@ -89,7 +102,14 @@ qry_sql <- function(query_string, params = NULL) { #' #' @param query_string SPARQL query string. #' @param params Sequence of named query parameters. -#' @return Object of type \code{sparql}. +#' @return Object of type \code{qry_sparql}. +#' @examples +#' \dontrun{ +#' sparql_stmt <- data.world::qry_sparql("SELECT ?s ?p ?o +#' WHERE { +#' ?s ?p ?o. +#' }") +#' } #' @export qry_sparql <- function(query_string, params = NULL) { me <- list(query_string = query_string, params = params) diff --git a/R/utils.R b/R/utils.R index d362dd8..61742d7 100644 --- a/R/utils.R +++ b/R/utils.R @@ -1,5 +1,5 @@ "data.world-r -Copyright 2017 data.world, Inc. +Copyright 2018 data.world, Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. diff --git a/R/zzz.R b/R/zzz.R index 42633a8..131a9be 100644 --- a/R/zzz.R +++ b/R/zzz.R @@ -1,5 +1,5 @@ "data.world-r -Copyright 2017 data.world, Inc. +Copyright 2018 data.world, Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. @@ -16,9 +16,8 @@ permissions and limitations under the License. This product includes software developed at data.world, Inc. https://data.world" -#' Set up default options -#' @keywords internal .onLoad <- function(...) { + op <- options() op.dw <- list(dw.config_path = @@ -28,33 +27,26 @@ https://data.world" if (any(toset)) options(op.dw[toset]) + set_dw_config() + invisible() + } #' Apply configuration from file or envvars and load dwapi #' @keywords internal -.onAttach <- function(...) { - # Load dwapi as a result of data.world being attached - if (!is_attached("dwapi")) { - lapply(c("dwapi"), library, character.only = TRUE, warn.conflicts = FALSE) - } +set_dw_config <- function() { profile <- Sys.getenv("DW_PROFILE", unset = NA) if (is.na(profile)) { profile <- "DEFAULT" } - suppressWarnings( - data.world::set_config( - data.world::cfg_saved(profile = profile))) + cs <- cfg_saved(profile = profile) + suppressWarnings(set_config(cs)) - data.world::set_config(data.world::cfg_env()) + set_config(cfg_env()) invisible() -} -#' Determine if library is already attached -#' @keywords internal -is_attached <- function(x) { - paste0("package:", x) %in% search() } diff --git a/README.md b/README.md index 0939cfc..d9faadf 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # data.world-r [![CircleCI](https://circleci.com/gh/datadotworld/data.world-r.svg?style=svg)](https://circleci.com/gh/datadotworld/data.world-r) -[![cran version](http://www.r-pkg.org/badges/version/data.world)](http://cran.rstudio.com/web/packages/data.world) +[![cran version](https://www.r-pkg.org/badges/version/data.world)](https://cran.r-project.org/package=data.world) The `data.world` package is the main R package for working with datasets on [data.world](https://data.world). @@ -9,6 +9,7 @@ Using this packages users can: * Query and join datasets * Choose between SQL and SPARQL +* Publish insights * Use data.world's REST API (via included `dwapi` package) # Getting Started @@ -37,6 +38,24 @@ Notice that `dataset` is parameter required by most functions and can be provide 1. URL: "https://data.world/jonloyens/an-intro-to-dataworld-dataset" 2. Path: "jonloyens/an-intro-to-dataworld-dataset" +# Publishing Insights + +For your convenience, this package allows you to publish +[insights](https://meta.data.world/showcasing-your-data-work-using-insights-9c578698275b) +to +[data projects](https://meta.data.world/introducing-data-projects-e7cfa971b552) +without leaving R Studio. + +Using R Studio's "Addins" menu, look for `DATA.WORLD > New insight`. + +![Add-in Menu](vignettes/new_insight_menu.png) + +The add-in will automatically capture the active plot in R Studio's plot +view and give you the opportunity to quickly choose the project, and enter +title and description for your insight. + +![Add-in Window](vignettes/new_insight_window.png) + ## Installation To get the current released version from CRAN: diff --git a/cobertura.xml b/cobertura.xml new file mode 100644 index 0000000..ed17d0f --- /dev/null +++ b/cobertura.xml @@ -0,0 +1,515 @@ + + + + R/config.R + R/data.world-defunct.R + R/insight-addin.R + R/query.R + R/utils.R + R/zzz.R + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cran-comments.md b/cran-comments.md index 5814fbe..01857e3 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,3 +1,9 @@ +## Note to reviewers: + +Please note that `data.world::save_config()` is designed to help users +cache their data.world API token for convenience. +As such, it uses the user's home directory by default. + ## Test environments * local OS X install, R 3.5.0 @@ -14,12 +20,48 @@ There was 1 NOTE: ``` Maintainer: 'Rafael Pereira ' -New submission - Possibly mis-spelled words in DESCRIPTION: - integrations (12:5) + integrations (14:5) + +Found the following (possibly) invalid URLs: + URL: https://circleci.com/gh/datadotworld/data.world-r + From: README.md + Status: 404 + Message: Not Found + URL: https://data.world + From: README.md + Status: Error + Message: libcurl error code 35 + error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version + URL: https://data.world/jonloyens/an-intro-to-dataworld-dataset/query + From: inst/doc/query.html + Status: Error + Message: libcurl error code 35 + error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version + URL: https://data.world/jonloyens/intermediate-data-world/query + From: inst/doc/query.html + Status: Error + Message: libcurl error code 35 + error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version + URL: https://data.world/settings/advanced + From: inst/doc/quickstart.html + Status: Error + Message: libcurl error code 35 + error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version + URL: https://meta.data.world/introducing-data-projects-e7cfa971b552 + From: inst/doc/quickstart.html + Status: 409 + Message: Conflict + URL: https://meta.data.world/showcasing-your-data-work-using-insights-9c578698275b + From: inst/doc/quickstart.html + Status: 409 + Message: Conflict ``` +Comments: +- "integrations" is not misspelled. +- All links have been tested by hand and they work correctly. + ## Downstream dependencies No ERRORs or WARNINGs found :) diff --git a/inst/dw-bootstrap.css b/inst/dw-bootstrap.css new file mode 100644 index 0000000..1fe77f3 --- /dev/null +++ b/inst/dw-bootstrap.css @@ -0,0 +1,7388 @@ +/*! + * Bootstrap v3.3.6 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */ +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} +body { + margin: 0; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} +audio, +canvas, +progress, +video { + display: inline-block; + vertical-align: baseline; +} +audio:not([controls]) { + display: none; + height: 0; +} +[hidden], +template { + display: none; +} +a { + background-color: transparent; +} +a:active, +a:hover { + outline: 0; +} +abbr[title] { + border-bottom: 1px dotted; +} +b, +strong { + font-weight: bold; +} +dfn { + font-style: italic; +} +h1 { + margin: .67em 0; + font-size: 2em; +} +mark { + color: #000; + background: #ff0; +} +small { + font-size: 80%; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -.5em; +} +sub { + bottom: -.25em; +} +img { + border: 0; +} +svg:not(:root) { + overflow: hidden; +} +figure { + margin: 1em 40px; +} +hr { + height: 0; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +pre { + overflow: auto; +} +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} +button, +input, +optgroup, +select, +textarea { + margin: 0; + font: inherit; + color: inherit; +} +button { + overflow: visible; +} +button, +select { + text-transform: none; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +button[disabled], +html input[disabled] { + cursor: default; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} +input { + line-height: normal; +} +input[type="checkbox"], +input[type="radio"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} +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; +} +fieldset { + padding: .35em .625em .75em; + margin: 0 2px; + border: 1px solid #c0c0c0; +} +legend { + padding: 0; + border: 0; +} +textarea { + overflow: auto; +} +optgroup { + font-weight: bold; +} +table { + border-spacing: 0; + border-collapse: collapse; +} +td, +th { + padding: 0; +} +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, + *:before, + *:after { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + -webkit-box-shadow: none !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^="#"]:after, + a[href^="javascript:"]: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; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .navbar { + display: none; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} +@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.woff2') format('woff2'), 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: 0; + display: inline-block; + margin-right: .25rem; + font-family: 'Glyphicons Halflings'; + font-size: .75rem; + font-style: normal; + font-weight: normal; + + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.navbar-form .glyphicon { + font-size: 1rem; +} +.alert .glyphicon { + float: left; + margin: 0 1.5rem 0 .5rem; + font-size: 2rem; + line-height: 1.5rem; +} +.btn .glyphicon, +.nav-tabs .glyphicon, +.panel-heading .glyphicon { + margin-right: .5rem; +} +.btn .glyphicon { + float: left; + font-size: 1.125rem; +} +.btn-link .glyphicon, +.btn-sm .glyphicon, +.btn-xs .glyphicon { + margin-right: .25rem; + font-size: .625rem; +} +.label .glyphicon { + top: 1px; +} +.input-group-addon .glyphicon { + margin: 0 auto; + font-size: 1rem; + vertical-align: middle; +} +.glyphicon-asterisk:before { + content: "\002a"; +} +.glyphicon-plus:before { + content: "\002b"; +} +.glyphicon-euro:before, +.glyphicon-eur: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"; +} +.glyphicon-cd:before { + content: "\e201"; +} +.glyphicon-save-file:before { + content: "\e202"; +} +.glyphicon-open-file:before { + content: "\e203"; +} +.glyphicon-level-up:before { + content: "\e204"; +} +.glyphicon-copy:before { + content: "\e205"; +} +.glyphicon-paste:before { + content: "\e206"; +} +.glyphicon-alert:before { + content: "\e209"; +} +.glyphicon-equalizer:before { + content: "\e210"; +} +.glyphicon-king:before { + content: "\e211"; +} +.glyphicon-queen:before { + content: "\e212"; +} +.glyphicon-pawn:before { + content: "\e213"; +} +.glyphicon-bishop:before { + content: "\e214"; +} +.glyphicon-knight:before { + content: "\e215"; +} +.glyphicon-baby-formula:before { + content: "\e216"; +} +.glyphicon-tent:before { + content: "\26fa"; +} +.glyphicon-blackboard:before { + content: "\e218"; +} +.glyphicon-bed:before { + content: "\e219"; +} +.glyphicon-apple:before { + content: "\f8ff"; +} +.glyphicon-erase:before { + content: "\e221"; +} +.glyphicon-hourglass:before { + content: "\231b"; +} +.glyphicon-lamp:before { + content: "\e223"; +} +.glyphicon-duplicate:before { + content: "\e224"; +} +.glyphicon-piggy-bank:before { + content: "\e225"; +} +.glyphicon-scissors:before { + content: "\e226"; +} +.glyphicon-bitcoin:before { + content: "\e227"; +} +.glyphicon-btc:before { + content: "\e227"; +} +.glyphicon-xbt:before { + content: "\e227"; +} +.glyphicon-yen:before { + content: "\00a5"; +} +.glyphicon-jpy:before { + content: "\00a5"; +} +.glyphicon-ruble:before { + content: "\20bd"; +} +.glyphicon-rub:before { + content: "\20bd"; +} +.glyphicon-scale:before { + content: "\e230"; +} +.glyphicon-ice-lolly:before { + content: "\e231"; +} +.glyphicon-ice-lolly-tasted:before { + content: "\e232"; +} +.glyphicon-education:before { + content: "\e233"; +} +.glyphicon-option-horizontal:before { + content: "\e234"; +} +.glyphicon-option-vertical:before { + content: "\e235"; +} +.glyphicon-menu-hamburger:before { + content: "\e236"; +} +.glyphicon-modal-window:before { + content: "\e237"; +} +.glyphicon-oil:before { + content: "\e238"; +} +.glyphicon-grain:before { + content: "\e239"; +} +.glyphicon-sunglasses:before { + content: "\e240"; +} +.glyphicon-text-size:before { + content: "\e241"; +} +.glyphicon-text-color:before { + content: "\e242"; +} +.glyphicon-text-background:before { + content: "\e243"; +} +.glyphicon-object-align-top:before { + content: "\e244"; +} +.glyphicon-object-align-bottom:before { + content: "\e245"; +} +.glyphicon-object-align-horizontal:before { + content: "\e246"; +} +.glyphicon-object-align-left:before { + content: "\e247"; +} +.glyphicon-object-align-vertical:before { + content: "\e248"; +} +.glyphicon-object-align-right:before { + content: "\e249"; +} +.glyphicon-triangle-right:before { + content: "\e250"; +} +.glyphicon-triangle-left:before { + content: "\e251"; +} +.glyphicon-triangle-bottom:before { + content: "\e252"; +} +.glyphicon-triangle-top:before { + content: "\e253"; +} +.glyphicon-console:before { + content: "\e254"; +} +.glyphicon-superscript:before { + content: "\e255"; +} +.glyphicon-subscript:before { + content: "\e256"; +} +.glyphicon-menu-left:before { + content: "\e257"; +} +.glyphicon-menu-right:before { + content: "\e258"; +} +.glyphicon-menu-down:before { + content: "\e259"; +} +.glyphicon-menu-up:before { + content: "\e260"; +} +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +html { + font-size: 16px; + + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} +body { + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 1.5; + color: #333d49; + background-color: #f7f7f7; +} +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +a { + color: #6290c3; + text-decoration: none; +} +a:hover, +a:focus { + color: #3c6a9d; + text-decoration: underline; +} +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +figure { + margin: 0; +} +img { + vertical-align: middle; +} +.img-responsive, +.thumbnail > img, +.thumbnail a > img, +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + max-width: 100%; + height: auto; +} +.img-rounded { + border-radius: .25rem; +} +.img-thumbnail { + display: inline-block; + max-width: 100%; + height: auto; + padding: .25rem; + line-height: 1.5; + background-color: #f7f7f7; + border: 1px solid #c8d0d9; + border-radius: .25rem; + -webkit-transition: all .2s ease-in-out; + -o-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; +} +.img-circle { + border-radius: 50%; +} +hr { + margin-top: 24px; + margin-bottom: 24px; + border: 0; + border-top: 1px solid #c8d0d9; +} +.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; +} +[role="button"] { + cursor: pointer; +} +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.5; + 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: #a3afbf; +} +h1, +.h1, +h2, +.h2, +h3, +.h3 { + margin-top: 0; + margin-bottom: 1rem; +} +h1 small, +.h1 small, +h2 small, +.h2 small, +h3 small, +.h3 small, +h1 .small, +.h1 .small, +h2 .small, +.h2 .small, +h3 .small, +.h3 .small { + font-size: 65%; +} +h4, +.h4, +h5, +.h5, +h6, +.h6 { + margin-top: 0; + margin-bottom: 1rem; +} +h4 small, +.h4 small, +h5 small, +.h5 small, +h6 small, +.h6 small, +h4 .small, +.h4 .small, +h5 .small, +.h5 .small, +h6 .small, +.h6 .small { + font-size: 81.25%; +} +h1, +.h1 { + font-size: 2.5rem; +} +h2, +.h2 { + font-size: 2.125rem; +} +h3, +.h3 { + font-size: 1.75rem; +} +h4, +.h4 { + font-size: 1.25rem; +} +h5, +.h5 { + font-size: 1rem; +} +h6, +.h6 { + font-size: .875rem; +} +p { + margin: 0 0 16px; +} +.lead { + margin-bottom: 24px; + font-size: 20px; + font-weight: 300; + line-height: 1.5; +} +@media (min-width: 768px) { + .lead { + font-size: 24px; + } +} +small, +.small { + font-size: 13px; + font-weight: normal; +} +mark, +.mark { + padding: .2em; + background-color: #fdf1df; +} +.text-left { + text-align: left; +} +.text-right { + text-align: right; +} +.text-center { + text-align: center; +} +.text-justify { + text-align: justify; +} +.text-nowrap { + white-space: nowrap; +} +.text-lowercase { + text-transform: lowercase; +} +.text-uppercase { + text-transform: uppercase; +} +.text-capitalize { + text-transform: capitalize; +} +.text-muted { + color: #8c9caf; +} +.text-primary { + color: #6290c3; +} +a.text-primary:hover, +a.text-primary:focus { + color: #4376af; +} +.text-success { + color: #398841; +} +a.text-success:hover, +a.text-success:focus { + color: #2a6430; +} +.text-info { + color: #355d8a; +} +a.text-info:hover, +a.text-info:focus { + color: #274465; +} +.text-warning { + color: #b7740c; +} +a.text-warning:hover, +a.text-warning:focus { + color: #875509; +} +.text-danger { + color: #b2100e; +} +a.text-danger:hover, +a.text-danger:focus { + color: #830c0a; +} +.bg-primary { + color: #fff; + background-color: #6290c3; +} +a.bg-primary:hover, +a.bg-primary:focus { + background-color: #4376af; +} +.bg-success { + background-color: #d3edd6; +} +a.bg-success:hover, +a.bg-success:focus { + background-color: #b0ddb4; +} +.bg-info { + background-color: #ecf2f8; +} +a.bg-info:hover, +a.bg-info:focus { + background-color: #c7d8ea; +} +.bg-warning { + background-color: #fdf1df; +} +a.bg-warning:hover, +a.bg-warning:focus { + background-color: #fadcaf; +} +.bg-danger { + background-color: #fcdddc; +} +a.bg-danger:hover, +a.bg-danger:focus { + background-color: #f9aead; +} +.page-header { + padding-bottom: 11px; + margin: 48px 0 24px; + border-bottom: 1px solid #dfe3e9; +} +ul, +ol { + margin-top: 0; + margin-bottom: 12px; +} +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} +.list-unstyled { + padding-left: 0; + list-style: none; +} +.list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none; +} +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} +dl { + margin-top: 0; + margin-bottom: 24px; +} +dt, +dd { + line-height: 1.5; +} +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; + } +} +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #a3afbf; +} +.initialism { + font-size: 90%; + text-transform: uppercase; +} +blockquote { + padding: 12px 24px; + margin: 0 0 24px; + font-size: 20px; + font-weight: 300; + border-left: 5px solid #6290c3; +} +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child { + margin-bottom: 0; +} +blockquote footer, +blockquote small, +blockquote .small { + display: block; + font-size: 80%; + line-height: 1.5; + color: #a3afbf; +} +blockquote footer:before, +blockquote small:before, +blockquote .small:before { + content: '\2014 \00A0'; +} +.blockquote-reverse, +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #6290c3; + border-left: 0; +} +.blockquote-reverse footer:before, +blockquote.pull-right footer:before, +.blockquote-reverse small:before, +blockquote.pull-right small:before, +.blockquote-reverse .small:before, +blockquote.pull-right .small:before { + content: ''; +} +.blockquote-reverse footer:after, +blockquote.pull-right footer:after, +.blockquote-reverse small:after, +blockquote.pull-right small:after, +.blockquote-reverse .small:after, +blockquote.pull-right .small:after { + content: '\00A0 \2014'; +} +address { + margin-bottom: 24px; + font-style: normal; + line-height: 1.5; +} +code, +kbd, +pre, +samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; +} +code { + padding: .125rem .25rem; + font-size: 87.5%; + color: #355d8a; + background-color: #d1deed; + border-radius: .25rem; +} +kbd { + padding: .125rem .25rem; + font-size: 87.5%; + color: #fff; + background-color: #333d49; + border-radius: .125rem; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); +} +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: bold; + -webkit-box-shadow: none; + box-shadow: none; +} +pre { + display: block; + padding: .75rem; + margin: 0 0 .75rem; + font-size: 87.5%; + line-height: 1.5; + color: #333d49; + word-break: break-all; + word-wrap: break-word; + background-color: #f8f9fa; + border-radius: .25rem; + -webkit-box-shadow: 0 0 0 1px #c8d0d9; + box-shadow: 0 0 0 1px #c8d0d9; +} +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; +} +.pre-scrollable { + max-height: 26rem; + overflow-y: scroll; +} +.container-fluid, +.container { + margin-right: auto; + margin-left: auto; +} +.container-fluid { + padding-right: 2rem; + padding-left: 2rem; +} +.row { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + margin-right: -.5rem; + margin-left: -.5rem; + flex-direction: row; + + -webkit-box-flex: 0; + -webkit-flex: 0 1 auto; + -ms-flex: 0 1 auto; + flex: 0 1 auto; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -webkit-flex-direction: row; + -ms-flex-direction: row; + -webkit-flex-wrap: wrap; + -ms-flex-wrap: wrap; + flex-wrap: wrap; +} +.row.reverse { + flex-direction: row-reverse; + + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -webkit-flex-direction: row-reverse; + -ms-flex-direction: row-reverse; +} +.col.reverse { + flex-direction: column-reverse; + + -webkit-box-orient: vertical; + -webkit-box-direction: reverse; + -webkit-flex-direction: column-reverse; + -ms-flex-direction: column-reverse; +} +.col-xs, +.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, +.col-xs-offset-0, +.col-xs-offset-1, +.col-xs-offset-2, +.col-xs-offset-3, +.col-xs-offset-4, +.col-xs-offset-5, +.col-xs-offset-6, +.col-xs-offset-7, +.col-xs-offset-8, +.col-xs-offset-9, +.col-xs-offset-10, +.col-xs-offset-11, +.col-xs-offset-12 { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding-right: .5rem; + padding-left: .5rem; + -webkit-transition: -webkit-flex-basis .2s ease; + -webkit-transition: -webkit-flex-basis .2s ease; + -o-transition: flex-basis .2s ease; + transition: -webkit-flex-basis .2s ease; + transition: -ms-flex-preferred-size .2s ease; + transition: flex-basis .2s ease; + + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; +} +.col-xs { + max-width: 100%; + + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-flex-basis: 0; + -ms-flex-preferred-size: 0; + flex-basis: 0; +} +.col-xs-1 { + max-width: 8.333%; + + -webkit-flex-basis: 8.333%; + -ms-flex-preferred-size: 8.333%; + flex-basis: 8.333%; +} +.col-xs-2 { + max-width: 16.666%; + + -webkit-flex-basis: 16.666%; + -ms-flex-preferred-size: 16.666%; + flex-basis: 16.666%; +} +.col-xs-3 { + max-width: 25%; + + -webkit-flex-basis: 25%; + -ms-flex-preferred-size: 25%; + flex-basis: 25%; +} +.col-xs-4 { + max-width: 33.333%; + + -webkit-flex-basis: 33.333%; + -ms-flex-preferred-size: 33.333%; + flex-basis: 33.333%; +} +.col-xs-5 { + max-width: 41.667%; + + -webkit-flex-basis: 41.667%; + -ms-flex-preferred-size: 41.667%; + flex-basis: 41.667%; +} +.col-xs-6 { + max-width: 50%; + + -webkit-flex-basis: 50%; + -ms-flex-preferred-size: 50%; + flex-basis: 50%; +} +.col-xs-7 { + max-width: 58.333%; + + -webkit-flex-basis: 58.333%; + -ms-flex-preferred-size: 58.333%; + flex-basis: 58.333%; +} +.col-xs-8 { + max-width: 66.667%; + + -webkit-flex-basis: 66.667%; + -ms-flex-preferred-size: 66.667%; + flex-basis: 66.667%; +} +.col-xs-9 { + max-width: 75%; + + -webkit-flex-basis: 75%; + -ms-flex-preferred-size: 75%; + flex-basis: 75%; +} +.col-xs-10 { + max-width: 83.333%; + + -webkit-flex-basis: 83.333%; + -ms-flex-preferred-size: 83.333%; + flex-basis: 83.333%; +} +.col-xs-11 { + max-width: 91.667%; + + -webkit-flex-basis: 91.667%; + -ms-flex-preferred-size: 91.667%; + flex-basis: 91.667%; +} +.col-xs-12 { + max-width: 100%; + + -webkit-flex-basis: 100%; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; +} +.col-xs-offset-0 { + margin-left: 0; +} +.col-xs-offset-1 { + margin-left: 8.333%; +} +.col-xs-offset-2 { + margin-left: 16.666%; +} +.col-xs-offset-3 { + margin-left: 25%; +} +.col-xs-offset-4 { + margin-left: 33.333%; +} +.col-xs-offset-5 { + margin-left: 41.667%; +} +.col-xs-offset-6 { + margin-left: 50%; +} +.col-xs-offset-7 { + margin-left: 58.333%; +} +.col-xs-offset-8 { + margin-left: 66.667%; +} +.col-xs-offset-9 { + margin-left: 75%; +} +.col-xs-offset-10 { + margin-left: 83.333%; +} +.col-xs-offset-11 { + margin-left: 91.667%; +} +.start-xs { + text-align: start; + + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; +} +.center-xs { + text-align: center; + + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; +} +.end-xs { + text-align: end; + + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; +} +.top-xs { + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; +} +.middle-xs { + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; +} +.bottom-xs { + -webkit-box-align: end; + -webkit-align-items: flex-end; + -ms-flex-align: end; + align-items: flex-end; +} +.around-xs { + -webkit-justify-content: space-around; + -ms-flex-pack: distribute; + justify-content: space-around; +} +.between-xs { + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; +} +.first-xs { + -webkit-box-ordinal-group: 0; + -webkit-order: -1; + -ms-flex-order: -1; + order: -1; +} +.last-xs { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; +} +@media only screen and (min-width: 768px) { + .container { + width: auto; + } + .col-sm, + .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, + .col-sm-offset-0, + .col-sm-offset-1, + .col-sm-offset-2, + .col-sm-offset-3, + .col-sm-offset-4, + .col-sm-offset-5, + .col-sm-offset-6, + .col-sm-offset-7, + .col-sm-offset-8, + .col-sm-offset-9, + .col-sm-offset-10, + .col-sm-offset-11, + .col-sm-offset-12 { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding-right: .5rem; + padding-left: .5rem; + -webkit-transition: -webkit-flex-basis .2s ease; + -webkit-transition: -webkit-flex-basis .2s ease; + -o-transition: flex-basis .2s ease; + transition: -webkit-flex-basis .2s ease; + transition: -ms-flex-preferred-size .2s ease; + transition: flex-basis .2s ease; + + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + } + .col-sm { + max-width: 100%; + + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-flex-basis: 0; + -ms-flex-preferred-size: 0; + flex-basis: 0; + } + .col-sm-1 { + max-width: 8.333%; + + -webkit-flex-basis: 8.333%; + -ms-flex-preferred-size: 8.333%; + flex-basis: 8.333%; + } + .col-sm-2 { + max-width: 16.666%; + + -webkit-flex-basis: 16.666%; + -ms-flex-preferred-size: 16.666%; + flex-basis: 16.666%; + } + .col-sm-3 { + max-width: 25%; + + -webkit-flex-basis: 25%; + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + } + .col-sm-4 { + max-width: 33.333%; + + -webkit-flex-basis: 33.333%; + -ms-flex-preferred-size: 33.333%; + flex-basis: 33.333%; + } + .col-sm-5 { + max-width: 41.667%; + + -webkit-flex-basis: 41.667%; + -ms-flex-preferred-size: 41.667%; + flex-basis: 41.667%; + } + .col-sm-6 { + max-width: 50%; + + -webkit-flex-basis: 50%; + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + } + .col-sm-7 { + max-width: 58.333%; + + -webkit-flex-basis: 58.333%; + -ms-flex-preferred-size: 58.333%; + flex-basis: 58.333%; + } + .col-sm-8 { + max-width: 66.667%; + + -webkit-flex-basis: 66.667%; + -ms-flex-preferred-size: 66.667%; + flex-basis: 66.667%; + } + .col-sm-9 { + max-width: 75%; + + -webkit-flex-basis: 75%; + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + } + .col-sm-10 { + max-width: 83.333%; + + -webkit-flex-basis: 83.333%; + -ms-flex-preferred-size: 83.333%; + flex-basis: 83.333%; + } + .col-sm-11 { + max-width: 91.667%; + + -webkit-flex-basis: 91.667%; + -ms-flex-preferred-size: 91.667%; + flex-basis: 91.667%; + } + .col-sm-12 { + max-width: 100%; + + -webkit-flex-basis: 100%; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + } + .col-sm-offset-0 { + margin-left: 0; + } + .col-sm-offset-1 { + margin-left: 8.333%; + } + .col-sm-offset-2 { + margin-left: 16.666%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-4 { + margin-left: 33.333%; + } + .col-sm-offset-5 { + margin-left: 41.667%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-7 { + margin-left: 58.333%; + } + .col-sm-offset-8 { + margin-left: 66.667%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-10 { + margin-left: 83.333%; + } + .col-sm-offset-11 { + margin-left: 91.667%; + } + .start-sm { + text-align: start; + + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + } + .center-sm { + text-align: center; + + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + } + .end-sm { + text-align: end; + + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; + } + .top-sm { + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + } + .middle-sm { + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } + .bottom-sm { + -webkit-box-align: end; + -webkit-align-items: flex-end; + -ms-flex-align: end; + align-items: flex-end; + } + .around-sm { + -webkit-justify-content: space-around; + -ms-flex-pack: distribute; + justify-content: space-around; + } + .between-sm { + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + } + .first-sm { + -webkit-box-ordinal-group: 0; + -webkit-order: -1; + -ms-flex-order: -1; + order: -1; + } + .last-sm { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; + } +} +@media only screen and (min-width: 992px) { + .container { + width: auto; + } + .col-md, + .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, + .col-md-offset-0, + .col-md-offset-1, + .col-md-offset-2, + .col-md-offset-3, + .col-md-offset-4, + .col-md-offset-5, + .col-md-offset-6, + .col-md-offset-7, + .col-md-offset-8, + .col-md-offset-9, + .col-md-offset-10, + .col-md-offset-11, + .col-md-offset-12 { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding-right: .5rem; + padding-left: .5rem; + -webkit-transition: -webkit-flex-basis .2s ease; + -webkit-transition: -webkit-flex-basis .2s ease; + -o-transition: flex-basis .2s ease; + transition: -webkit-flex-basis .2s ease; + transition: -ms-flex-preferred-size .2s ease; + transition: flex-basis .2s ease; + + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + } + .col-md { + max-width: 100%; + + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-flex-basis: 0; + -ms-flex-preferred-size: 0; + flex-basis: 0; + } + .col-md-1 { + max-width: 8.333%; + + -webkit-flex-basis: 8.333%; + -ms-flex-preferred-size: 8.333%; + flex-basis: 8.333%; + } + .col-md-2 { + max-width: 16.666%; + + -webkit-flex-basis: 16.666%; + -ms-flex-preferred-size: 16.666%; + flex-basis: 16.666%; + } + .col-md-3 { + max-width: 25%; + + -webkit-flex-basis: 25%; + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + } + .col-md-4 { + max-width: 33.333%; + + -webkit-flex-basis: 33.333%; + -ms-flex-preferred-size: 33.333%; + flex-basis: 33.333%; + } + .col-md-5 { + max-width: 41.667%; + + -webkit-flex-basis: 41.667%; + -ms-flex-preferred-size: 41.667%; + flex-basis: 41.667%; + } + .col-md-6 { + max-width: 50%; + + -webkit-flex-basis: 50%; + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + } + .col-md-7 { + max-width: 58.333%; + + -webkit-flex-basis: 58.333%; + -ms-flex-preferred-size: 58.333%; + flex-basis: 58.333%; + } + .col-md-8 { + max-width: 66.667%; + + -webkit-flex-basis: 66.667%; + -ms-flex-preferred-size: 66.667%; + flex-basis: 66.667%; + } + .col-md-9 { + max-width: 75%; + + -webkit-flex-basis: 75%; + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + } + .col-md-10 { + max-width: 83.333%; + + -webkit-flex-basis: 83.333%; + -ms-flex-preferred-size: 83.333%; + flex-basis: 83.333%; + } + .col-md-11 { + max-width: 91.667%; + + -webkit-flex-basis: 91.667%; + -ms-flex-preferred-size: 91.667%; + flex-basis: 91.667%; + } + .col-md-12 { + max-width: 100%; + + -webkit-flex-basis: 100%; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + } + .col-md-offset-0 { + margin-left: 0; + } + .col-md-offset-1 { + margin-left: 8.333%; + } + .col-md-offset-2 { + margin-left: 16.666%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-4 { + margin-left: 33.333%; + } + .col-md-offset-5 { + margin-left: 41.667%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-7 { + margin-left: 58.333%; + } + .col-md-offset-8 { + margin-left: 66.667%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-10 { + margin-left: 83.333%; + } + .col-md-offset-11 { + margin-left: 91.667%; + } + .start-md { + text-align: start; + + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + } + .center-md { + text-align: center; + + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + } + .end-md { + text-align: end; + + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; + } + .top-md { + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + } + .middle-md { + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } + .bottom-md { + -webkit-box-align: end; + -webkit-align-items: flex-end; + -ms-flex-align: end; + align-items: flex-end; + } + .around-md { + -webkit-justify-content: space-around; + -ms-flex-pack: distribute; + justify-content: space-around; + } + .between-md { + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + } + .first-md { + -webkit-box-ordinal-group: 0; + -webkit-order: -1; + -ms-flex-order: -1; + order: -1; + } + .last-md { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; + } +} +@media only screen and (min-width: 1200px) { + .container { + max-width: 1216px; + } + .col-lg, + .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, + .col-lg-offset-0, + .col-lg-offset-1, + .col-lg-offset-2, + .col-lg-offset-3, + .col-lg-offset-4, + .col-lg-offset-5, + .col-lg-offset-6, + .col-lg-offset-7, + .col-lg-offset-8, + .col-lg-offset-9, + .col-lg-offset-10, + .col-lg-offset-11, + .col-lg-offset-12 { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding-right: .5rem; + padding-left: .5rem; + -webkit-transition: -webkit-flex-basis .2s ease; + -webkit-transition: -webkit-flex-basis .2s ease; + -o-transition: flex-basis .2s ease; + transition: -webkit-flex-basis .2s ease; + transition: -ms-flex-preferred-size .2s ease; + transition: flex-basis .2s ease; + + -webkit-box-flex: 0; + -webkit-flex: 0 0 auto; + -ms-flex: 0 0 auto; + flex: 0 0 auto; + } + .col-lg { + max-width: 100%; + + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-flex-basis: 0; + -ms-flex-preferred-size: 0; + flex-basis: 0; + } + .col-lg-1 { + max-width: 8.333%; + + -webkit-flex-basis: 8.333%; + -ms-flex-preferred-size: 8.333%; + flex-basis: 8.333%; + } + .col-lg-2 { + max-width: 16.666%; + + -webkit-flex-basis: 16.666%; + -ms-flex-preferred-size: 16.666%; + flex-basis: 16.666%; + } + .col-lg-3 { + max-width: 25%; + + -webkit-flex-basis: 25%; + -ms-flex-preferred-size: 25%; + flex-basis: 25%; + } + .col-lg-4 { + max-width: 33.333%; + + -webkit-flex-basis: 33.333%; + -ms-flex-preferred-size: 33.333%; + flex-basis: 33.333%; + } + .col-lg-5 { + max-width: 41.667%; + + -webkit-flex-basis: 41.667%; + -ms-flex-preferred-size: 41.667%; + flex-basis: 41.667%; + } + .col-lg-6 { + max-width: 50%; + + -webkit-flex-basis: 50%; + -ms-flex-preferred-size: 50%; + flex-basis: 50%; + } + .col-lg-7 { + max-width: 58.333%; + + -webkit-flex-basis: 58.333%; + -ms-flex-preferred-size: 58.333%; + flex-basis: 58.333%; + } + .col-lg-8 { + max-width: 66.667%; + + -webkit-flex-basis: 66.667%; + -ms-flex-preferred-size: 66.667%; + flex-basis: 66.667%; + } + .col-lg-9 { + max-width: 75%; + + -webkit-flex-basis: 75%; + -ms-flex-preferred-size: 75%; + flex-basis: 75%; + } + .col-lg-10 { + max-width: 83.333%; + + -webkit-flex-basis: 83.333%; + -ms-flex-preferred-size: 83.333%; + flex-basis: 83.333%; + } + .col-lg-11 { + max-width: 91.667%; + + -webkit-flex-basis: 91.667%; + -ms-flex-preferred-size: 91.667%; + flex-basis: 91.667%; + } + .col-lg-12 { + max-width: 100%; + + -webkit-flex-basis: 100%; + -ms-flex-preferred-size: 100%; + flex-basis: 100%; + } + .col-lg-offset-0 { + margin-left: 0; + } + .col-lg-offset-1 { + margin-left: 8.333%; + } + .col-lg-offset-2 { + margin-left: 16.666%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-4 { + margin-left: 33.333%; + } + .col-lg-offset-5 { + margin-left: 41.667%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-7 { + margin-left: 58.333%; + } + .col-lg-offset-8 { + margin-left: 66.667%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-10 { + margin-left: 83.333%; + } + .col-lg-offset-11 { + margin-left: 91.667%; + } + .start-lg { + text-align: start; + + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + -ms-flex-pack: start; + justify-content: flex-start; + } + .center-lg { + text-align: center; + + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + } + .end-lg { + text-align: end; + + -webkit-box-pack: end; + -webkit-justify-content: flex-end; + -ms-flex-pack: end; + justify-content: flex-end; + } + .top-lg { + -webkit-box-align: start; + -webkit-align-items: flex-start; + -ms-flex-align: start; + align-items: flex-start; + } + .middle-lg { + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + } + .bottom-lg { + -webkit-box-align: end; + -webkit-align-items: flex-end; + -ms-flex-align: end; + align-items: flex-end; + } + .around-lg { + -webkit-justify-content: space-around; + -ms-flex-pack: distribute; + justify-content: space-around; + } + .between-lg { + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + -ms-flex-pack: justify; + justify-content: space-between; + } + .first-lg { + -webkit-box-ordinal-group: 0; + -webkit-order: -1; + -ms-flex-order: -1; + order: -1; + } + .last-lg { + -webkit-box-ordinal-group: 2; + -webkit-order: 1; + -ms-flex-order: 1; + order: 1; + } +} +table { + background-color: transparent; +} +caption { + padding-top: .75rem 1.5rem; + padding-bottom: .75rem 1.5rem; + color: #8c9caf; + text-align: left; +} +th { + text-align: left; +} +.table { + width: 100%; + max-width: 100%; + margin-bottom: 24px; +} +.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: .75rem 1.5rem; + line-height: 1.5; + vertical-align: top; + border-top: 1px solid #dfe3e9; +} +.table > thead > tr > th { + font-size: .875rem; + font-weight: normal; + color: #a3afbf; + vertical-align: bottom; + border-bottom: 1px solid #dfe3e9; +} +.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: 1px solid #dfe3e9; +} +.table .table { + background-color: #f7f7f7; +} +.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: .375rem 1.5rem; +} +.table-bordered { + border: 1px solid #dfe3e9; +} +.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 #dfe3e9; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 1px; +} +.table-striped > tbody > tr:nth-of-type(odd) { + background-color: #f8f9fa; +} +.table-hover > tbody > tr:hover { + background-color: #dfe3e9; +} +table col[class*="col-"] { + position: static; + display: table-column; + float: none; +} +table td[class*="col-"], +table th[class*="col-"] { + position: static; + display: table-cell; + float: none; +} +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #dfe3e9; +} +.table-hover > tbody > tr > td.active:hover, +.table-hover > tbody > tr > th.active:hover, +.table-hover > tbody > tr.active:hover > td, +.table-hover > tbody > tr:hover > .active, +.table-hover > tbody > tr.active:hover > th { + background-color: #d0d6de; +} +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #d3edd6; +} +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td, +.table-hover > tbody > tr:hover > .success, +.table-hover > tbody > tr.success:hover > th { + background-color: #c2e5c5; +} +.table > thead > tr > td.info, +.table > tbody > tr > td.info, +.table > tfoot > tr > td.info, +.table > thead > tr > th.info, +.table > tbody > tr > th.info, +.table > tfoot > tr > th.info, +.table > thead > tr.info > td, +.table > tbody > tr.info > td, +.table > tfoot > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr.info > th, +.table > tfoot > tr.info > th { + background-color: #ecf2f8; +} +.table-hover > tbody > tr > td.info:hover, +.table-hover > tbody > tr > th.info:hover, +.table-hover > tbody > tr.info:hover > td, +.table-hover > tbody > tr:hover > .info, +.table-hover > tbody > tr.info:hover > th { + background-color: #dae5f1; +} +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fdf1df; +} +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td, +.table-hover > tbody > tr:hover > .warning, +.table-hover > tbody > tr.warning:hover > th { + background-color: #fbe7c7; +} +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #fcdddc; +} +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td, +.table-hover > tbody > tr:hover > .danger, +.table-hover > tbody > tr.danger:hover > th { + background-color: #fac5c5; +} +.table-responsive { + min-height: .01%; + overflow-x: auto; +} +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 18px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; + border: 1px solid #dfe3e9; + } + .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 { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 24px; + font-size: 24px; + line-height: inherit; + color: #333d49; + border: 0; + border-bottom: 1px solid #a3afbf; +} +label { + display: inline-block; + max-width: 100%; + margin-bottom: .25rem; + 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; +} +input[type="range"] { + display: block; + width: 100%; +} +select[multiple], +select[size] { + height: auto; +} +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; +} +output { + display: block; + padding-top: 1.375rem; + font-size: 16px; + line-height: 1.5; + color: #5d6f85; +} +.form-control { + display: block; + width: 100%; + height: 2.5rem; + padding: .375rem .75rem; + font-size: 16px; + line-height: 1.5; + color: #5d6f85; + background-color: #fff; + background-image: none; + border: 1px solid #a3afbf; + border-radius: .25rem; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .25s; + -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .25s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .25s; +} +.form-control:focus { + border-color: #5dc0de; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); + box-shadow: inset 0 1px 1px rgba(0,0,0,.075); +} +.form-control::-moz-placeholder { + font-weight: 300; + color: #a3afbf; + opacity: 1; +} +.form-control:-ms-input-placeholder { + font-weight: 300; + color: #a3afbf; +} +.form-control::-webkit-input-placeholder { + font-weight: 300; + color: #a3afbf; +} +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + background-color: #f8f9fa; + opacity: 1; +} +.form-control[disabled], +fieldset[disabled] .form-control { + cursor: not-allowed; +} +textarea.form-control { + height: auto; + min-height: 5.5rem; + resize: vertical; +} +input[type="search"] { + -webkit-appearance: none; +} +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type="date"].form-control, + input[type="time"].form-control, + input[type="datetime-local"].form-control, + input[type="month"].form-control { + line-height: 2.5rem; + } + input[type="date"].input-sm, + input[type="time"].input-sm, + input[type="datetime-local"].input-sm, + input[type="month"].input-sm, + .input-group-sm input[type="date"], + .input-group-sm input[type="time"], + .input-group-sm input[type="datetime-local"], + .input-group-sm input[type="month"] { + line-height: 2.125rem; + } + input[type="date"].input-lg, + input[type="time"].input-lg, + input[type="datetime-local"].input-lg, + input[type="month"].input-lg, + .input-group-lg input[type="date"], + .input-group-lg input[type="time"], + .input-group-lg input[type="datetime-local"], + .input-group-lg input[type="month"] { + line-height: 2.875rem; + } +} +.form-group { + margin-bottom: 1rem; +} +.radio, +.checkbox { + position: relative; + display: block; + margin-top: .5rem; + margin-bottom: .5rem; +} +.radio label, +.checkbox label { + min-height: 24px; + padding-left: 20px; + 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"] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px; +} +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} +.radio-inline, +.checkbox-inline { + position: relative; + 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], +input[type="radio"].disabled, +input[type="checkbox"].disabled, +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"] { + cursor: not-allowed; +} +.radio-inline.disabled, +.checkbox-inline.disabled, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} +.radio.disabled label, +.checkbox.disabled label, +fieldset[disabled] .radio label, +fieldset[disabled] .checkbox label { + cursor: not-allowed; +} +.form-control-static { + min-height: 40px; + padding-top: 1.375rem; + padding-bottom: 1.375rem; + margin-bottom: 0; +} +.form-control-static.input-lg, +.form-control-static.input-sm { + padding-right: 0; + padding-left: 0; +} +.input-xs { + height: 1.75rem; + padding: .125rem .5rem; + font-size: .8125rem; + line-height: 1.25; + border-radius: .125rem; +} +select.input-xs { + height: 1.75rem; + line-height: 1.75rem; +} +textarea.input-xs, +select[multiple].input-xs { + height: auto; +} +.form-group-xs .form-control { + height: 1.75rem; + padding: .125rem .5rem; + font-size: .8125rem; + line-height: 1.25; + border-radius: .125rem; +} +.form-group-xs select.form-control { + height: 1.75rem; + line-height: 1.75rem; +} +.form-group-xs textarea.form-control, +.form-group-xs select[multiple].form-control { + height: auto; +} +.form-group-xs .form-control-static { + height: 1.75rem; + min-height: 24.8125px; + padding: 1.125rem .5rem; + font-size: .8125rem; + line-height: 1.25; +} +.input-sm { + height: 2.125rem; + padding: .25rem .625rem; + font-size: .875rem; + line-height: 1.375; + border-radius: .125rem; +} +select.input-sm { + height: 2.125rem; + line-height: 2.125rem; +} +textarea.input-sm, +select[multiple].input-sm { + height: auto; +} +.form-group-sm .form-control { + height: 2.125rem; + padding: .25rem .625rem; + font-size: .875rem; + line-height: 1.375; + border-radius: .125rem; +} +.form-group-sm select.form-control { + height: 2.125rem; + line-height: 2.125rem; +} +.form-group-sm textarea.form-control, +.form-group-sm select[multiple].form-control { + height: auto; +} +.form-group-sm .form-control-static { + height: 2.125rem; + min-height: 24.875px; + padding: 1.25rem .625rem; + font-size: .875rem; + line-height: 1.375; +} +.input-lg { + height: 2.875rem; + padding: .5rem .875rem; + font-size: 1.125rem; + line-height: 1.625; + border-radius: .25rem; +} +select.input-lg { + height: 2.875rem; + line-height: 2.875rem; +} +textarea.input-lg, +select[multiple].input-lg { + height: auto; +} +.form-group-lg .form-control { + height: 2.875rem; + padding: .5rem .875rem; + font-size: 1.125rem; + line-height: 1.625; + border-radius: .25rem; +} +.form-group-lg select.form-control { + height: 2.875rem; + line-height: 2.875rem; +} +.form-group-lg textarea.form-control, +.form-group-lg select[multiple].form-control { + height: auto; +} +.form-group-lg .form-control-static { + height: 2.875rem; + min-height: 25.125px; + padding: 1.5rem .875rem; + font-size: 1.125rem; + line-height: 1.625; +} +.has-feedback { + position: relative; +} +.has-feedback .form-control { + padding-right: 3.125rem; +} +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 4; + display: block; + width: 2.5rem; + height: 2.5rem; + line-height: 2.5rem; + text-align: center; + pointer-events: none; +} +.input-lg + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.form-group-lg .form-control + .form-control-feedback { + width: 2.875rem; + height: 2.875rem; + line-height: 2.875rem; +} +.input-sm + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback { + width: 2.125rem; + height: 2.125rem; + line-height: 2.125rem; +} +.has-success .help-block, +.has-success .control-label, +.has-success .radio, +.has-success .checkbox, +.has-success .radio-inline, +.has-success .checkbox-inline, +.has-success.radio label, +.has-success.checkbox label, +.has-success.radio-inline label, +.has-success.checkbox-inline label { + color: #398841; +} +.has-success .form-control { + border-color: #398841; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-success .form-control:focus { + border-color: #2a6430; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-success .input-group-addon { + color: #398841; + background-color: #d3edd6; + border-color: #398841; +} +.has-success .form-control-feedback { + color: #398841; +} +.has-warning .help-block, +.has-warning .control-label, +.has-warning .radio, +.has-warning .checkbox, +.has-warning .radio-inline, +.has-warning .checkbox-inline, +.has-warning.radio label, +.has-warning.checkbox label, +.has-warning.radio-inline label, +.has-warning.checkbox-inline label { + color: #b7740c; +} +.has-warning .form-control { + border-color: #b7740c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-warning .form-control:focus { + border-color: #875509; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-warning .input-group-addon { + color: #b7740c; + background-color: #fdf1df; + border-color: #b7740c; +} +.has-warning .form-control-feedback { + color: #b7740c; +} +.has-error .help-block, +.has-error .control-label, +.has-error .radio, +.has-error .checkbox, +.has-error .radio-inline, +.has-error .checkbox-inline, +.has-error.radio label, +.has-error.checkbox label, +.has-error.radio-inline label, +.has-error.checkbox-inline label { + color: #b2100e; +} +.has-error .form-control { + border-color: #b2100e; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-error .form-control:focus { + border-color: #830c0a; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-error .input-group-addon { + color: #b2100e; + background-color: #fcdddc; + border-color: #b2100e; +} +.has-error .form-control-feedback { + color: #b2100e; +} +.has-feedback label ~ .form-control-feedback { + top: 29px; +} +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; +} +.help-block { + display: block; + margin-top: .125rem; + margin-bottom: 1rem; + font-size: .8125rem; + color: #5d6f85; +} +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-static { + display: inline-block; + } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; + } + .form-inline .input-group .input-group-addon, + .form-inline .input-group .input-group-btn, + .form-inline .input-group .form-control { + width: auto; + } + .form-inline .input-group > .form-control { + width: 100%; + } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .radio label, + .form-inline .checkbox label { + padding-left: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .form-inline .has-feedback .form-control-feedback { + top: 0; + } +} +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 1.375rem; + margin-top: 0; + margin-bottom: 0; +} +.form-horizontal .radio, +.form-horizontal .checkbox { + min-height: 25.375px; +} +.form-horizontal .form-group { + margin-right: -1rem; + margin-left: -1rem; +} +@media (min-width: 768px) { + .form-horizontal .control-label { + padding-top: 1.375rem; + margin-bottom: 0; + text-align: right; + } +} +.form-horizontal .has-feedback .form-control-feedback { + right: 1rem; +} +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 1.5rem; + font-size: 1.125rem; + } +} +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 1.25rem; + font-size: .875rem; + } +} +.btn { + display: inline-block; + height: 2.5rem; + padding: .375rem 1.5rem; + margin-bottom: 0; + font-size: 16px; + font-weight: 500; + line-height: 1.75rem; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 0; + border-radius: .25rem; +} +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus, +.btn.focus { + color: #6290c3; + text-decoration: none; +} +.btn:active, +.btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 0 0 1px #6290c3; + box-shadow: inset 0 0 0 1px #6290c3; +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + filter: alpha(opacity=65); + opacity: .65; +} +a.btn.disabled, +fieldset[disabled] a.btn { + pointer-events: none; +} +.btn-default { + color: #6290c3; + background-color: transparent; + background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, .25) 0%, rgba(255, 255, 255, 0) 100%); + background-image: -o-linear-gradient(top, rgba(255, 255, 255, .25) 0%, rgba(255, 255, 255, 0) 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, .25)), to(rgba(255, 255, 255, 0))); + background-image: linear-gradient(to bottom, rgba(255, 255, 255, .25) 0%, rgba(255, 255, 255, 0) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#40ffffff', endColorstr='#00ffffff', GradientType=0); + background-repeat: repeat-x; + border-color: #6290c3; + -webkit-box-shadow: inset 0 0 0 1px #6290c3, inset 0 1px rgba(255, 255, 255, .875); + box-shadow: inset 0 0 0 1px #6290c3, inset 0 1px rgba(255, 255, 255, .875); +} +.btn-default:focus, +.btn-default.focus { + color: #6290c3; + background-color: rgba(0, 0, 0, 0); + border-color: #2e5178; +} +.btn-default:hover { + color: #6290c3; + background-color: rgba(0, 0, 0, 0); + border-color: #4071a8; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + color: #6290c3; + background-color: rgba(0, 0, 0, 0); + border-color: #4071a8; +} +.btn-default:active:hover, +.btn-default.active:hover, +.open > .dropdown-toggle.btn-default:hover, +.btn-default:active:focus, +.btn-default.active:focus, +.open > .dropdown-toggle.btn-default:focus, +.btn-default:active.focus, +.btn-default.active.focus, +.open > .dropdown-toggle.btn-default.focus { + color: #6290c3; + background-color: rgba(0, 0, 0, 0); + border-color: #2e5178; +} +.btn-default:active, +.btn-default.active, +.open > .dropdown-toggle.btn-default { + background-image: none; +} +.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.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus { + background-color: transparent; + border-color: #6290c3; +} +.btn-default .badge { + color: transparent; + background-color: #6290c3; +} +.btn-primary { + color: #fff; + background-color: #5dc0de; + border-color: #48b8da; +} +.btn-primary:focus, +.btn-primary.focus { + color: #fff; + background-color: #33b0d5; + border-color: #1b6e87; +} +.btn-primary:hover { + color: #fff; + background-color: #33b0d5; + border-color: #279bbe; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #33b0d5; + border-color: #279bbe; +} +.btn-primary:active:hover, +.btn-primary.active:hover, +.open > .dropdown-toggle.btn-primary:hover, +.btn-primary:active:focus, +.btn-primary.active:focus, +.open > .dropdown-toggle.btn-primary:focus, +.btn-primary:active.focus, +.btn-primary.active.focus, +.open > .dropdown-toggle.btn-primary.focus { + color: #fff; + background-color: #279bbe; + border-color: #1b6e87; +} +.btn-primary:active, +.btn-primary.active, +.open > .dropdown-toggle.btn-primary { + background-image: none; +} +.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.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus { + background-color: #5dc0de; + border-color: #48b8da; +} +.btn-primary .badge { + color: #5dc0de; + background-color: #fff; +} +.btn-success { + color: #fff; + background-color: #68bf70; + border-color: #56b75f; +} +.btn-success:focus, +.btn-success.focus { + color: #fff; + background-color: #49ab52; + border-color: #2a6430; +} +.btn-success:hover { + color: #fff; + background-color: #49ab52; + border-color: #3e9246; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + color: #fff; + background-color: #49ab52; + border-color: #3e9246; +} +.btn-success:active:hover, +.btn-success.active:hover, +.open > .dropdown-toggle.btn-success:hover, +.btn-success:active:focus, +.btn-success.active:focus, +.open > .dropdown-toggle.btn-success:focus, +.btn-success:active.focus, +.btn-success.active.focus, +.open > .dropdown-toggle.btn-success.focus { + color: #fff; + background-color: #3e9246; + border-color: #2a6430; +} +.btn-success:active, +.btn-success.active, +.open > .dropdown-toggle.btn-success { + background-image: none; +} +.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.focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success.focus { + background-color: #68bf70; + border-color: #56b75f; +} +.btn-success .badge { + color: #68bf70; + background-color: #fff; +} +.btn-info { + color: #fff; + background-color: #6290c3; + border-color: #5083bc; +} +.btn-info:focus, +.btn-info.focus { + color: #fff; + background-color: #4376af; + border-color: #274465; +} +.btn-info:hover { + color: #fff; + background-color: #4376af; + border-color: #396595; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + color: #fff; + background-color: #4376af; + border-color: #396595; +} +.btn-info:active:hover, +.btn-info.active:hover, +.open > .dropdown-toggle.btn-info:hover, +.btn-info:active:focus, +.btn-info.active:focus, +.open > .dropdown-toggle.btn-info:focus, +.btn-info:active.focus, +.btn-info.active.focus, +.open > .dropdown-toggle.btn-info.focus { + color: #fff; + background-color: #396595; + border-color: #274465; +} +.btn-info:active, +.btn-info.active, +.open > .dropdown-toggle.btn-info { + background-image: none; +} +.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.focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info.focus { + background-color: #6290c3; + border-color: #5083bc; +} +.btn-info .badge { + color: #6290c3; + background-color: #fff; +} +.btn-warning { + color: #fff; + background-color: #f5bd67; + border-color: #f3b34f; +} +.btn-warning:focus, +.btn-warning.focus { + color: #fff; + background-color: #f2a837; + border-color: #b7740c; +} +.btn-warning:hover { + color: #fff; + background-color: #f2a837; + border-color: #f09a16; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + color: #fff; + background-color: #f2a837; + border-color: #f09a16; +} +.btn-warning:active:hover, +.btn-warning.active:hover, +.open > .dropdown-toggle.btn-warning:hover, +.btn-warning:active:focus, +.btn-warning.active:focus, +.open > .dropdown-toggle.btn-warning:focus, +.btn-warning:active.focus, +.btn-warning.active.focus, +.open > .dropdown-toggle.btn-warning.focus { + color: #fff; + background-color: #f09a16; + border-color: #b7740c; +} +.btn-warning:active, +.btn-warning.active, +.open > .dropdown-toggle.btn-warning { + background-image: none; +} +.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.focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning.focus { + background-color: #f5bd67; + border-color: #f3b34f; +} +.btn-warning .badge { + color: #f5bd67; + background-color: #fff; +} +.btn-danger { + color: #fff; + background-color: #f36866; + border-color: #f1514e; +} +.btn-danger:focus, +.btn-danger.focus { + color: #fff; + background-color: #ef3937; + border-color: #b2100e; +} +.btn-danger:hover { + color: #fff; + background-color: #ef3937; + border-color: #ed1916; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + color: #fff; + background-color: #ef3937; + border-color: #ed1916; +} +.btn-danger:active:hover, +.btn-danger.active:hover, +.open > .dropdown-toggle.btn-danger:hover, +.btn-danger:active:focus, +.btn-danger.active:focus, +.open > .dropdown-toggle.btn-danger:focus, +.btn-danger:active.focus, +.btn-danger.active.focus, +.open > .dropdown-toggle.btn-danger.focus { + color: #fff; + background-color: #ed1916; + border-color: #b2100e; +} +.btn-danger:active, +.btn-danger.active, +.open > .dropdown-toggle.btn-danger { + background-image: none; +} +.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.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus { + background-color: #f36866; + border-color: #f1514e; +} +.btn-danger .badge { + color: #f36866; + background-color: #fff; +} +.btn-primary, +.btn-success, +.btn-info, +.btn-warning, +.btn-danger { + background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .05) 100%); + background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .05) 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, .05))); + background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .05) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#0d000000', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, .2), 0 1px 4px rgba(0, 0, 0, .14); + box-shadow: inset 0 1px rgba(255, 255, 255, .2), 0 1px 4px rgba(0, 0, 0, .14); +} +.btn-primary.disabled, +.btn-success.disabled, +.btn-info.disabled, +.btn-warning.disabled, +.btn-danger.disabled, +.btn-primary[disabled], +.btn-success[disabled], +.btn-info[disabled], +.btn-warning[disabled], +.btn-danger[disabled], +fieldset[disabled] .btn-primary, +fieldset[disabled] .btn-success, +fieldset[disabled] .btn-info, +fieldset[disabled] .btn-warning, +fieldset[disabled] .btn-danger { + background-color: #c8d0d9; +} +.btn-primary.disabled:hover, +.btn-success.disabled:hover, +.btn-info.disabled:hover, +.btn-warning.disabled:hover, +.btn-danger.disabled:hover, +.btn-primary[disabled]:hover, +.btn-success[disabled]:hover, +.btn-info[disabled]:hover, +.btn-warning[disabled]:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +fieldset[disabled] .btn-success:hover, +fieldset[disabled] .btn-info:hover, +fieldset[disabled] .btn-warning:hover, +fieldset[disabled] .btn-danger:hover { + background-color: #c8d0d9; +} +.btn-default:hover { + color: #4376af; + background-color: transparent; +} +.btn-default.disabled, +.btn-default[disabled] { + color: rgba(0, 0, 0, .5); + background-color: rgba(0, 0, 0, .1); + -webkit-box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .25), inset 0 2px 0 rgba(0, 0, 0, .25); + box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .25), inset 0 2px 0 rgba(0, 0, 0, .25); +} +.btn-default.disabled:hover, +.btn-default[disabled]:hover { + background-color: rgba(0, 0, 0, .1); +} +.btn-link { + font-weight: normal; + color: #6290c3; + border-radius: 0; +} +.btn-link, +.btn-link:active, +.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: #3c6a9d; + 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: #dfe3e9; + text-decoration: none; +} +.btn-lg, +.btn-group-lg > .btn { + height: 2.875rem; + padding: .5rem 1.75rem; + font-size: 1.125rem; + line-height: 1.875rem; + border-radius: .25rem; +} +.btn-sm, +.btn-group-sm > .btn { + height: 2.125rem; + padding: .25rem 1.25rem; + font-size: .875rem; + line-height: 1.625rem; + border-radius: .125rem; +} +.btn-xs, +.btn-group-xs > .btn { + height: 1.75rem; + padding: .125rem 1rem; + font-size: .8125rem; + line-height: 1.5rem; + border-radius: .125rem; +} +.btn-block { + display: block; + width: 100%; +} +.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; + -o-transition: opacity .15s linear; + transition: opacity .15s linear; +} +.fade.in { + opacity: 1; +} +.collapse { + display: none; +} +.collapse.in { + display: block; +} +tr.collapse.in { + display: table-row; +} +tbody.collapse.in { + display: table-row-group; +} +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: .35s; + -o-transition-duration: .35s; + transition-duration: .35s; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility; +} +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px dashed; + border-top: 4px solid \9; + border-right: 4px solid transparent; + border-left: 4px solid transparent; +} +.dropup, +.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: 14rem; + padding: .25rem 0; + margin: 2px 0 0; + font-size: 16px; + text-align: left; + list-style: none; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #c8d0d9; + border-radius: .25rem; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); + box-shadow: 0 6px 12px rgba(0, 0, 0, .175); +} +.dropdown-menu.pull-right { + right: 0; + left: auto; +} +.dropdown-menu .divider { + height: 1px; + margin: 4px 0; + overflow: hidden; + background-color: #c8d0d9; +} +.dropdown-menu > li > a { + display: block; + padding: .25rem 1.25rem; + clear: both; + font-size: .875rem; + font-weight: normal; + line-height: 1.75; + color: #333d49; + white-space: nowrap; +} +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #29303a; + text-decoration: none; + background-color: #dfe3e9; +} +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #fff; + text-decoration: none; + background-color: #6290c3; + outline: 0; +} +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #a3afbf; +} +.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-menu-right { + right: 0; + left: auto; +} +.dropdown-menu-left { + right: auto; + left: 0; +} +.dropdown-header { + display: block; + padding: .25rem 1.25rem; + font-size: .8125rem; + line-height: 1.5; + color: #a3afbf; + white-space: nowrap; +} +.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 { + content: ""; + border-top: 0; + border-bottom: 4px dashed; + border-bottom: 4px solid \9; +} +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; +} +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; + } +} +.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 + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} +.btn-toolbar { + margin-left: -5px; +} +.btn-toolbar .btn, +.btn-toolbar .btn-group, +.btn-toolbar .input-group { + float: left; +} +.btn-toolbar > .btn, +.btn-toolbar > .btn-group, +.btn-toolbar > .input-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-top-left-radius: 0; + border-bottom-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:not(:last-child) > .btn:last-child, +.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} +.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 { + color: #4376af !important; + background-color: rgba(0, 0, 0, .05) !important; + -webkit-box-shadow: inset 0 0 0 1px #4376af; + box-shadow: inset 0 0 0 1px #4376af; +} +.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 > .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-left-radius: .25rem; + border-top-right-radius: .25rem; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: .25rem; + border-bottom-left-radius: .25rem; +} +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; +} +.btn-group-justified > .btn, +.btn-group-justified > .btn-group { + display: table-cell; + float: none; + width: 1%; +} +.btn-group-justified > .btn-group .btn { + width: 100%; +} +.btn-group-justified > .btn-group .dropdown-menu { + left: auto; +} +[data-toggle="buttons"] > .btn input[type="radio"], +[data-toggle="buttons"] > .btn-group > .btn input[type="radio"], +[data-toggle="buttons"] > .btn input[type="checkbox"], +[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: 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 { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; +} +.input-group .form-control:focus { + z-index: 3; +} +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 2.875rem; + padding: .5rem .875rem; + font-size: 1.125rem; + line-height: 1.625; + border-radius: .25rem; +} +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 2.875rem; + line-height: 2.875rem; +} +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn, +select[multiple].input-group-lg > .form-control, +select[multiple].input-group-lg > .input-group-addon, +select[multiple].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: 2.125rem; + padding: .25rem .625rem; + font-size: .875rem; + line-height: 1.375; + border-radius: .125rem; +} +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 2.125rem; + line-height: 2.125rem; +} +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn, +select[multiple].input-group-sm > .form-control, +select[multiple].input-group-sm > .input-group-addon, +select[multiple].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: .375rem .75rem; + font-size: 16px; + font-weight: normal; + line-height: 1; + color: #5d6f85; + text-align: center; + background-color: #f8f9fa; + border: 1px solid #a3afbf; + border-radius: .25rem; +} +.input-group-addon.input-sm { + padding: .25rem .625rem; + font-size: .875rem; + border-radius: .125rem; +} +.input-group-addon.input-lg { + padding: .5rem .875rem; + font-size: 1.125rem; + border-radius: .25rem; +} +.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 > .btn-group > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group-btn:last-child > .btn-group:not(:last-child) > .btn { + 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 > .btn-group > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child), +.input-group-btn:first-child > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} +.input-group-addon:last-child { + border-left: 0; +} +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; +} +.input-group-btn > .btn { + position: relative; +} +.input-group-btn > .btn + .btn { + margin-left: -1px; +} +.input-group-btn > .btn:hover, +.input-group-btn > .btn:focus, +.input-group-btn > .btn:active { + z-index: 2; +} +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .btn-group { + margin-right: -1px; +} +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .btn-group { + z-index: 2; + margin-left: -1px; +} +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.nav > li { + position: relative; + display: block; +} +.nav > li > a { + position: relative; + display: block; + padding: .625rem .75rem; + outline: none; +} +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: transparent; +} +.nav > li.disabled > a { + color: #a3afbf; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #a3afbf; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: transparent; + border-color: transparent; +} +.nav .nav-divider { + height: 1px; + margin: 4px 0; + overflow: hidden; + background-color: #e5e5e5; +} +.nav > li > a > img { + max-width: none; +} +.nav-tabs > li { + float: left; +} +.nav-tabs > li > a { + height: 3rem; + padding: .625rem .125rem; + margin: 0 .5rem; + font-size: .875rem; + line-height: 1.625rem; + color: #8c9caf; + border-color: transparent; + border-style: solid; + border-width: 0; +} +.nav-tabs > li > a:hover { + color: #1e242b; + border-color: transparent transparent transparent; +} +.nav-tabs > li > .btn { + margin-top: -.125rem; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #1e242b; + cursor: default; + background-color: transparent; + border-color: transparent; + border-bottom-color: transparent; + -webkit-box-shadow: inset 0 -3px 0 #5dc0de; + box-shadow: inset 0 -3px 0 #5dc0de; +} +.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 { + top: -1px; +} +.nav-tabs.nav-justified > li > a { + padding: .625rem .5rem; + margin: 0; + border-radius: 0; +} +.nav-tabs.nav-justified > .active > a, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:focus { + border: 1px solid transparent; +} +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid transparent; + border-radius: 0; + } + .nav-tabs.nav-justified > .active > a, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:focus { + border-bottom-color: transparent; + } +} +.nav-pills > li { + float: left; +} +.nav-pills > li > a { + border-radius: .25rem; +} +.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: #6290c3; +} +.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 { + top: -1px; +} +.nav-tabs-justified > li > a { + padding: .625rem .5rem; + margin: 0; + border-radius: 0; +} +.nav-tabs-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus { + border: 1px solid transparent; +} +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid transparent; + border-radius: 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus { + border-bottom-color: transparent; + } +} +.tab-content > .tab-pane { + display: none; +} +.tab-content > .active { + display: block; +} +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar { + position: relative; + min-height: 3.5rem; + margin-bottom: 0; + border: 1px solid transparent; +} +@media (min-width: 768px) { + .navbar { + border-radius: .25rem; + } +} +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} +.navbar-collapse { + padding-right: 1rem; + padding-left: 1rem; + overflow-x: visible; + -webkit-overflow-scrolling: touch; + border-top: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); +} +.navbar-collapse.in, +.navbar-collapse.collapsing { + position: static; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: #333d49; +} +.navbar-collapse.in { + overflow-y: auto; + opacity: 1; + -webkit-transition: opacity .25s ease, -webkit-transform .25s ease; + -o-transition: opacity .25s ease, -o-transform .25s ease; + transition: opacity .25s ease, transform .25s ease; + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + -o-transform: translateX(0); + transform: translateX(0); +} +.navbar-collapse.collapsing { + opacity: 0; + -webkit-transition: height .05s ease; + -o-transition: height .05s ease; + transition: height .05s ease; + -webkit-transform: translateX(100%); + -ms-transform: translateX(100%); + -o-transform: translateX(100%); + transform: translateX(100%); +} +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + position: static; + overflow-y: visible; + background-color: transparent; + } + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + padding-right: 0; + padding-left: 0; + } +} +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse { + max-height: 21rem; +} +@media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse { + max-height: 200px; + } +} +.container > .navbar-header, +.container-fluid > .navbar-header, +.container > .navbar-collapse, +.container-fluid > .navbar-collapse { + margin-right: -1rem; + margin-left: -1rem; +} +@media (min-width: 768px) { + .container > .navbar-header, + .container-fluid > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .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; + height: 3.5rem; + font-size: 1.125rem; + line-height: 24px; +} +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} +.navbar-brand > img { + display: block; +} +.navbar-toggle { + position: relative; + z-index: 1; + float: right; + height: 2.125rem; + padding: .5rem; + margin-top: .6875rem; + margin-bottom: .6875rem; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: .25rem; +} +.navbar-toggle:focus { + outline: 0; +} +.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: .5rem 0; +} +.navbar-nav > li > a { + padding-top: .5rem; + padding-bottom: .5rem; +} +.navbar-nav > li > .btn { + padding: .25rem .75rem; +} +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } + .navbar-nav > li > a, + .navbar-nav > li > .btn, + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + height: auto; + -webkit-box-sizing: initial; + -moz-box-sizing: initial; + box-sizing: initial; + padding: 1rem; + margin: 0; + line-height: 1; + text-align: left; + } +} +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 1rem; + padding-bottom: 1rem; + } +} +.navbar-form { + margin-top: .6875rem; + margin-right: 1rem; + margin-bottom: .6875rem; + margin-left: 1rem; +} +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .navbar-form .form-control-static { + display: inline-block; + } + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; + } + .navbar-form .input-group .input-group-addon, + .navbar-form .input-group .input-group-btn, + .navbar-form .input-group .form-control { + width: auto; + } + .navbar-form .input-group > .form-control { + width: 100%; + } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .radio label, + .navbar-form .checkbox label { + padding-left: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + position: relative; + margin-left: 0; + } + .navbar-form .has-feedback .form-control-feedback { + top: 0; + } +} +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } + .navbar-form .form-group:last-child { + margin-bottom: 0; + } +} +@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-nav > li > .dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-left-radius: .25rem; + border-top-right-radius: .25rem; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} +.navbar-btn { + margin-top: .5rem; + margin-bottom: .5rem; +} +.navbar-btn.btn-sm { + margin-top: .6875rem; + margin-bottom: .6875rem; +} +.navbar-btn.btn-xs { + margin-top: .875rem; + margin-bottom: .875rem; +} +.navbar-text { + margin-top: 1rem; + margin-bottom: 1rem; +} +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-right: 1rem; + margin-left: 1rem; + } +} +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + margin-right: -1rem; + } + .navbar-right ~ .navbar-right { + margin-right: 0; + } +} +.navbar-default { + background-color: #dfe3e9; + border-color: #cbd2db; +} +.navbar-default .navbar-brand { + color: #5d6f85; +} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #333d49; + background-color: transparent; +} +.navbar-default .navbar-text { + color: #a3afbf; +} +.navbar-default .navbar-nav > li > a { + color: #5d6f85; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333d49; + background-color: transparent; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #333d49; + background-color: #cbd2db; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #c1c9d4; + background-color: transparent; +} +.navbar-default .navbar-nav > li > .btn { + color: #5d6f85; +} +.navbar-default .navbar-toggle { + border-color: #a3afbf; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #cbd2db; +} +.navbar-default .navbar-toggle .icon-bar { + background-color: #5d6f85; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #cbd2db; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #333d49; + background-color: #cbd2db; +} +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #5d6f85; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333d49; + 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: #333d49; + background-color: #cbd2db; + } + .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: #c1c9d4; + background-color: transparent; + } +} +.navbar-default .navbar-link { + color: #5d6f85; +} +.navbar-default .navbar-link:hover { + color: #333d49; +} +.navbar-default .btn-link { + color: #5d6f85; +} +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus { + color: #333d49; +} +.navbar-default .btn-link[disabled]:hover, +fieldset[disabled] .navbar-default .btn-link:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:focus { + color: #c1c9d4; +} +.navbar-inverse { + background-color: #333d49; + border-color: #1e242b; +} +.navbar-inverse .navbar-brand { + color: #a3afbf; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-text { + color: #dfe3e9; +} +.navbar-inverse .btn { + color: #a3afbf; + background-image: -webkit-linear-gradient(top, rgba(255, 255, 255, .075) 0%, rgba(255, 255, 255, 0) 100%); + background-image: -o-linear-gradient(top, rgba(255, 255, 255, .075) 0%, rgba(255, 255, 255, 0) 100%); + background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, .075)), to(rgba(255, 255, 255, 0))); + background-image: linear-gradient(to bottom, rgba(255, 255, 255, .075) 0%, rgba(255, 255, 255, 0) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#13ffffff', endColorstr='#00ffffff', GradientType=0); + background-repeat: repeat-x; + -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, .125), 0 2px 0 rgba(0, 0, 0, .125); + box-shadow: inset 0 1px rgba(255, 255, 255, .125), 0 2px 0 rgba(0, 0, 0, .125); +} +.navbar-inverse .btn:hover, +.navbar-inverse .btn:focus { + color: #fff; +} +.navbar-inverse .navbar-nav > li > a { + color: #a3afbf; +} +.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: transparent; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #5d6f85; + background-color: transparent; +} +.navbar-inverse .navbar-toggle { + border-color: transparent; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: transparent; +} +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #242b34; +} +.navbar-inverse .form-control input { + color: #fff; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + color: #fff; + background-color: transparent; +} +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #1e242b; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #1e242b; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #a3afbf; + } + .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: transparent; + } + .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: #5d6f85; + background-color: transparent; + } +} +.navbar-inverse .navbar-link { + color: #a3afbf; +} +.navbar-inverse .navbar-link:hover { + color: #fff; +} +.navbar-inverse .btn-link { + color: #a3afbf; +} +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus { + color: #fff; +} +.navbar-inverse .btn-link[disabled]:hover, +fieldset[disabled] .navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:focus { + color: #5d6f85; +} +.breadcrumb { + padding: .75rem 1.5rem; + margin-bottom: 24px; + list-style: none; + background-color: #dfe3e9; + border-radius: .25rem; +} +.breadcrumb > li { + display: inline-block; +} +.breadcrumb > li + li:before { + padding: 0 5px; + color: #c8d0d9; + content: "/\00a0"; +} +.breadcrumb > .active { + color: #5d6f85; +} +.pagination { + display: inline-block; + padding-left: 0; + margin: 24px 0; + border-radius: .25rem; +} +.pagination > li { + display: inline; +} +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: .375rem .75rem; + margin-left: -1px; + line-height: 1.5; + color: #6290c3; + text-decoration: none; + background-color: transparent; + border-color: transparent; + border-style: solid; + border-width: 0; + -webkit-box-shadow: inset 0 0 0 1px #dfe3e9; + box-shadow: inset 0 0 0 1px #dfe3e9; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-top-left-radius: .25rem; + border-bottom-left-radius: .25rem; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: .25rem; + border-bottom-right-radius: .25rem; +} +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + z-index: 2; + color: #3c6a9d; + cursor: pointer; + background-color: #f8f9fa; + border-color: #dfe3e9; + -webkit-box-shadow: inset 0 0 0 1px #dfe3e9; + box-shadow: inset 0 0 0 1px #dfe3e9; +} +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 3; + color: #fff; + cursor: default; + background-color: #6290c3; + border-color: #6290c3; + -webkit-box-shadow: inset 0 0 0 1px #6290c3; + box-shadow: inset 0 0 0 1px #6290c3; +} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #a3afbf; + cursor: not-allowed; + background-color: transparent; + border-color: #dfe3e9; +} +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: .5rem .875rem; + font-size: 1.125rem; + line-height: 1.625; +} +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-top-left-radius: .25rem; + border-bottom-left-radius: .25rem; +} +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: .25rem; + border-bottom-right-radius: .25rem; +} +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: .25rem .625rem; + font-size: .875rem; + line-height: 1.375; +} +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-top-left-radius: .125rem; + border-bottom-left-radius: .125rem; +} +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: .125rem; + border-bottom-right-radius: .125rem; +} +.pager { + padding-left: 0; + margin: 24px 0; + text-align: center; + list-style: none; +} +.pager li { + display: inline; +} +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: transparent; + border: 1px solid #dfe3e9; + border-radius: .25rem; +} +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #f8f9fa; +} +.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: #a3afbf; + cursor: not-allowed; + background-color: transparent; +} +.label { + display: inline; + padding: .25rem .5rem; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} +a.label:hover, +a.label:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} +.label:empty { + display: none; +} +.btn .label { + position: relative; + top: -1px; +} +.label-default { + color: #677c94; + background-color: #e6eaee; + -webkit-box-shadow: inset 0 0 0 1px #a3afbf; + box-shadow: inset 0 0 0 1px #a3afbf; +} +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #c8d0d9; +} +.label-primary { + color: #3c6a9d; + background-color: #e3ebf4; + -webkit-box-shadow: inset 0 0 0 1px #6290c3; + box-shadow: inset 0 0 0 1px #6290c3; +} +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #bed1e6; +} +.label-success { + color: #419949; + background-color: #e5f4e7; + -webkit-box-shadow: inset 0 0 0 1px #68bf70; + box-shadow: inset 0 0 0 1px #68bf70; +} +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #c2e5c5; +} +.label-info { + color: #2490b1; + background-color: #dcf1f8; + -webkit-box-shadow: inset 0 0 0 1px #5dc0de; + box-shadow: inset 0 0 0 1px #5dc0de; +} +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #b2e1ef; +} +.label-warning { + color: #cf830e; + background-color: #fdf1df; + -webkit-box-shadow: inset 0 0 0 1px #f5bd67; + box-shadow: inset 0 0 0 1px #f5bd67; +} +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #fadcaf; +} +.label-danger { + color: #ca1210; + background-color: #fcdddc; + -webkit-box-shadow: inset 0 0 0 1px #f36866; + box-shadow: inset 0 0 0 1px #f36866; +} +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #f9aead; +} +.badge { + position: relative; + top: -1px; + display: inline-block; + min-width: .5rem; + padding: .125rem .375rem; + font-size: .875rem; + font-weight: bold; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: middle; + background-color: #a3afbf; + border-radius: .25rem; +} +.badge:empty { + display: none; +} +.btn .badge { + position: relative; + top: -2px; +} +.btn-xs .badge, +.btn-group-xs > .btn .badge { + top: 0; + padding: 1px 5px; +} +a.badge:hover, +a.badge:focus { + color: #fff; + text-decoration: none; + cursor: pointer; +} +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #6290c3; + background-color: #fff; +} +.list-group-item > .badge { + float: right; +} +.list-group-item > .badge + .badge { + margin-right: 5px; +} +.nav-pills > li > a > .badge { + margin-left: 3px; +} +.jumbotron { + padding-top: 3rem; + padding-bottom: 3rem; + margin-bottom: 3rem; + color: inherit; + background-color: #f8f9fa; +} +.jumbotron h1, +.jumbotron .h1 { + color: inherit; +} +.jumbotron p { + margin-bottom: 1.5rem; + font-size: 24px; + font-weight: 200; +} +.jumbotron > hr { + border-top-color: #dadfe5; +} +.container .jumbotron, +.container-fluid .jumbotron { + padding-right: 1rem; + padding-left: 1rem; + border-radius: .25rem; +} +.jumbotron .container { + max-width: 100%; +} +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 4.8rem; + padding-bottom: 4.8rem; + } + .container .jumbotron, + .container-fluid .jumbotron { + padding-right: 6rem; + padding-left: 6rem; + } + .jumbotron h1, + .jumbotron .h1 { + font-size: 72px; + } +} +.thumbnail { + display: block; + padding: .25rem; + margin-bottom: 24px; + line-height: 1.5; + background-color: #f7f7f7; + border: 1px solid #c8d0d9; + border-radius: .25rem; + -webkit-transition: border .2s ease-in-out; + -o-transition: border .2s ease-in-out; + transition: border .2s ease-in-out; +} +.thumbnail > img, +.thumbnail a > img { + margin-right: auto; + margin-left: auto; +} +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active { + border-color: #6290c3; +} +.thumbnail .caption { + padding: 1rem; + color: #333d49; +} +.alert { + padding: 1rem; + margin-bottom: 24px; + border: 1px solid transparent; + border-radius: .25rem; +} +.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, +.alert-dismissible { + padding-right: 2.25rem; +} +.alert-dismissable .close, +.alert-dismissible .close { + position: relative; + top: -2px; + right: -1.25rem; + color: inherit; +} +.alert-success { + color: #398841; + background-color: #d3edd6; + border-color: #bde2ba; +} +.alert-success hr { + border-top-color: #acdaa8; +} +.alert-success .alert-link { + color: #2a6430; +} +.alert-info { + color: #355d8a; + background-color: #ecf2f8; + border-color: #d3e4ee; +} +.alert-info hr { + border-top-color: #c0d9e7; +} +.alert-info .alert-link { + color: #274465; +} +.alert-warning { + color: #b7740c; + background-color: #fdf1df; + border-color: #fbdec7; +} +.alert-warning hr { + border-top-color: #fad0af; +} +.alert-warning .alert-link { + color: #875509; +} +.alert-danger { + color: #b2100e; + background-color: #fcdddc; + border-color: #fac5cd; +} +.alert-danger hr { + border-top-color: #f9adb8; +} +.alert-danger .alert-link { + color: #830c0a; +} +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} +@-o-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: 24px; + margin-bottom: 24px; + overflow: hidden; + background-color: rgba(93, 111, 133, .25); + border-radius: .25rem; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); +} +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: .875rem; + line-height: 24px; + color: #fff; + text-align: center; + background-color: #6290c3; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); + -webkit-transition: width .6s ease; + -o-transition: width .6s ease; + transition: width .6s ease; +} +.progress-striped .progress-bar, +.progress-bar-striped { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + background-size: 40px 40px; +} +.progress.active .progress-bar, +.progress-bar.active { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} +.progress-bar-success { + background-color: #68bf70; +} +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.progress-bar-info { + background-color: #5dc0de; +} +.progress-striped .progress-bar-info { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.progress-bar-warning { + background-color: #f5bd67; +} +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.progress-bar-danger { + background-color: #f36866; +} +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent); +} +.media { + margin-top: 15px; +} +.media:first-child { + margin-top: 0; +} +.media, +.media-body { + overflow: hidden; + zoom: 1; +} +.media-body { + width: 10000px; +} +.media-object { + display: block; +} +.media-object.img-thumbnail { + max-width: none; +} +.media-right, +.media > .pull-right { + padding-left: 10px; +} +.media-left, +.media > .pull-left { + padding-right: 10px; +} +.media-left, +.media-right, +.media-body { + display: table-cell; + vertical-align: top; +} +.media-middle { + vertical-align: middle; +} +.media-bottom { + vertical-align: bottom; +} +.media-heading { + margin-top: 0; + margin-bottom: 5px; +} +.media-list { + padding-left: 0; + list-style: none; +} +.list-group { + padding-left: 0; + margin-bottom: 1rem; +} +.list-group-item { + position: relative; + display: block; + padding: 1.5rem; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #dfe3e9; +} +.list-group-item:first-child { + border-top-left-radius: .25rem; + border-top-right-radius: .25rem; +} +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: .25rem; + border-bottom-left-radius: .25rem; +} +a.list-group-item, +button.list-group-item { + color: #333d49; +} +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading { + color: #1e242b; +} +a.list-group-item:hover, +button.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:focus { + color: #1e242b; + text-decoration: none; + background-color: #dfe3e9; +} +button.list-group-item { + width: 100%; + text-align: left; +} +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus { + color: #a3afbf; + cursor: not-allowed; + background-color: #f8f9fa; +} +.list-group-item.disabled .list-group-item-heading, +.list-group-item.disabled:hover .list-group-item-heading, +.list-group-item.disabled:focus .list-group-item-heading { + color: inherit; +} +.list-group-item.disabled .list-group-item-text, +.list-group-item.disabled:hover .list-group-item-text, +.list-group-item.disabled:focus .list-group-item-text { + color: #a3afbf; +} +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #fff; + background-color: #6290c3; + border-color: #6290c3; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:focus .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading > .small { + color: inherit; +} +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #f6f8fb; +} +.panel .list-group-item { + border-radius: .125rem; +} +.panel .list-group-item:only-child { + border-radius: 0; +} +.list-group-item-success { + color: #398841; + background-color: #d3edd6; +} +a.list-group-item-success, +button.list-group-item-success { + color: #398841; +} +a.list-group-item-success .list-group-item-heading, +button.list-group-item-success .list-group-item-heading { + color: inherit; +} +a.list-group-item-success:hover, +button.list-group-item-success:hover, +a.list-group-item-success:focus, +button.list-group-item-success:focus { + color: #398841; + background-color: #c2e5c5; +} +a.list-group-item-success.active, +button.list-group-item-success.active, +a.list-group-item-success.active:hover, +button.list-group-item-success.active:hover, +a.list-group-item-success.active:focus, +button.list-group-item-success.active:focus { + color: #fff; + background-color: #398841; + border-color: #398841; +} +.list-group-item-info { + color: #355d8a; + background-color: #ecf2f8; +} +a.list-group-item-info, +button.list-group-item-info { + color: #355d8a; +} +a.list-group-item-info .list-group-item-heading, +button.list-group-item-info .list-group-item-heading { + color: inherit; +} +a.list-group-item-info:hover, +button.list-group-item-info:hover, +a.list-group-item-info:focus, +button.list-group-item-info:focus { + color: #355d8a; + background-color: #dae5f1; +} +a.list-group-item-info.active, +button.list-group-item-info.active, +a.list-group-item-info.active:hover, +button.list-group-item-info.active:hover, +a.list-group-item-info.active:focus, +button.list-group-item-info.active:focus { + color: #fff; + background-color: #355d8a; + border-color: #355d8a; +} +.list-group-item-warning { + color: #b7740c; + background-color: #fdf1df; +} +a.list-group-item-warning, +button.list-group-item-warning { + color: #b7740c; +} +a.list-group-item-warning .list-group-item-heading, +button.list-group-item-warning .list-group-item-heading { + color: inherit; +} +a.list-group-item-warning:hover, +button.list-group-item-warning:hover, +a.list-group-item-warning:focus, +button.list-group-item-warning:focus { + color: #b7740c; + background-color: #fbe7c7; +} +a.list-group-item-warning.active, +button.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +button.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus, +button.list-group-item-warning.active:focus { + color: #fff; + background-color: #b7740c; + border-color: #b7740c; +} +.list-group-item-danger { + color: #b2100e; + background-color: #fcdddc; +} +a.list-group-item-danger, +button.list-group-item-danger { + color: #b2100e; +} +a.list-group-item-danger .list-group-item-heading, +button.list-group-item-danger .list-group-item-heading { + color: inherit; +} +a.list-group-item-danger:hover, +button.list-group-item-danger:hover, +a.list-group-item-danger:focus, +button.list-group-item-danger:focus { + color: #b2100e; + background-color: #fac5c5; +} +a.list-group-item-danger.active, +button.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +button.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus, +button.list-group-item-danger.active:focus { + color: #fff; + background-color: #b2100e; + border-color: #b2100e; +} +.list-group-item-heading { + margin-top: 0; + margin-bottom: .25rem; +} +.list-group-item-text { + margin-bottom: 0; + line-height: 1.5; +} +.panel { + margin-bottom: 24px; + background-color: #fff; + border-radius: .125rem; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, .14); + box-shadow: 0 1px 4px rgba(0, 0, 0, .14); +} +.panel-body { + padding: 1.5rem; +} +.panel-heading { + padding: 1rem 1.5rem; + font-weight: bold; + border-bottom: 1px solid transparent; + border-top-left-radius: .25rem; + border-top-right-radius: .25rem; + -webkit-box-shadow: inset 0 1px rgba(255, 255, 255, .875); + box-shadow: inset 0 1px rgba(255, 255, 255, .875); +} +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; +} +.panel-heading .btn-sm { + margin-top: -.25rem; +} +.panel-heading .btn-xs { + margin-top: -.125rem; +} +.panel-heading .btn-link { + padding-right: 0; + padding-left: 0; + color: #6290c3; +} +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; +} +.panel-title > a, +.panel-title > small, +.panel-title > .small, +.panel-title > small > a, +.panel-title > .small > a { + color: inherit; +} +.panel-footer { + padding: 1rem 1.5rem; + background-color: #f8f9fa; + border-top: 1px solid #dfe3e9; + border-bottom-right-radius: .25rem; + border-bottom-left-radius: .25rem; +} +.panel > .list-group, +.panel > .panel-collapse > .list-group { + margin-bottom: 0; +} +.panel > .list-group .list-group-item, +.panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; +} +.panel > .list-group:first-child .list-group-item:first-child, +.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-left-radius: .25rem; + border-top-right-radius: .25rem; +} +.panel > .list-group:last-child .list-group-item:last-child, +.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: .25rem; + border-bottom-left-radius: .25rem; +} +.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} +.list-group + .panel-footer { + border-top-width: 0; +} +.panel > .table, +.panel > .table-responsive > .table, +.panel > .panel-collapse > .table { + margin-bottom: 0; +} +.panel > .table caption, +.panel > .table-responsive > .table caption, +.panel > .panel-collapse > .table caption { + padding-right: 1.5rem; + padding-left: 1.5rem; +} +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child { + border-top-left-radius: .25rem; + border-top-right-radius: .25rem; +} +.panel > .table:first-child > thead:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child { + border-top-left-radius: .25rem; + border-top-right-radius: .25rem; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child { + border-top-left-radius: .25rem; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child { + border-top-right-radius: .25rem; +} +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child { + border-bottom-right-radius: .25rem; + border-bottom-left-radius: .25rem; +} +.panel > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-right-radius: .25rem; + border-bottom-left-radius: .25rem; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: .25rem; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: .25rem; +} +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body { + border-top: 1px solid #dfe3e9; +} +.panel > .table > tbody:first-child > tr:first-child th, +.panel > .table > tbody:first-child > tr: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:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th { + border-bottom: 0; +} +.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, +.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 { + border-bottom: 0; +} +.panel > .table-responsive { + margin-bottom: 0; + border: 0; +} +.panel-group { + margin-bottom: 24px; +} +.panel-group .panel { + margin-bottom: 0; + border-radius: .25rem; +} +.panel-group .panel + .panel { + margin-top: 5px; +} +.panel-group .panel-heading { + border-bottom: 0; +} +.panel-group .panel-heading + .panel-collapse > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group { + border-top: 1px solid #dfe3e9; +} +.panel-group .panel-footer { + border-top: 0; +} +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #dfe3e9; +} +.panel-default { + border-color: #dfe3e9; +} +.panel-default > .panel-heading { + color: #333d49; + background-color: #fff; + border-color: #dfe3e9; +} +.panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #dfe3e9; +} +.panel-default > .panel-heading .badge { + color: #fff; + background-color: #333d49; +} +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #dfe3e9; +} +.panel-primary { + border-color: #6290c3; +} +.panel-primary > .panel-heading { + color: #fff; + background-color: #6290c3; + border-color: #6290c3; +} +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #6290c3; +} +.panel-primary > .panel-heading .badge { + color: #6290c3; + background-color: #fff; +} +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #6290c3; +} +.panel-success { + border-color: #bde2ba; +} +.panel-success > .panel-heading { + color: #398841; + background-color: #d3edd6; + border-color: #bde2ba; +} +.panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #bde2ba; +} +.panel-success > .panel-heading .badge { + color: #d3edd6; + background-color: #398841; +} +.panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #bde2ba; +} +.panel-info { + border-color: #d3e4ee; +} +.panel-info > .panel-heading { + color: #355d8a; + background-color: #ecf2f8; + border-color: #d3e4ee; +} +.panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #d3e4ee; +} +.panel-info > .panel-heading .badge { + color: #ecf2f8; + background-color: #355d8a; +} +.panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #d3e4ee; +} +.panel-warning { + border-color: #fbdec7; +} +.panel-warning > .panel-heading { + color: #b7740c; + background-color: #fdf1df; + border-color: #fbdec7; +} +.panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #fbdec7; +} +.panel-warning > .panel-heading .badge { + color: #fdf1df; + background-color: #b7740c; +} +.panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #fbdec7; +} +.panel-danger { + border-color: #fac5cd; +} +.panel-danger > .panel-heading { + color: #b2100e; + background-color: #fcdddc; + border-color: #fac5cd; +} +.panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #fac5cd; +} +.panel-danger > .panel-heading .badge { + color: #fcdddc; + background-color: #b2100e; +} +.panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #fac5cd; +} +.panel-default > .panel-heading { + color: #5d6f85; +} +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; +} +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} +.embed-responsive-16by9 { + padding-bottom: 56.25%; +} +.embed-responsive-4by3 { + padding-bottom: 75%; +} +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f8f9fa; + border: 1px solid #e3e7ec; + border-radius: .25rem; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, .15); +} +.well-lg { + padding: 24px; + border-radius: .25rem; +} +.well-sm { + padding: 9px; + border-radius: .125rem; +} +.close { + float: right; + font-size: 24px; + font-weight: bold; + line-height: 1; + color: #333d49; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: .2; +} +.close:hover, +.close:focus { + color: #333d49; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: .5; +} +button.close { + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: transparent; + border: 0; +} +.modal-open { + overflow: hidden; +} +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1050; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0; +} +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform .3s ease-out; + -o-transition: -o-transform .3s ease-out; + transition: transform .3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); +} +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} +.modal-lg { + width: 100%; + height: 100%; +} +.modal-dialog { + position: relative; + width: auto; + margin: 10px; +} +.modal-lg.modal-dialog { + width: 100%; + margin: 0; +} +.modal-content { + position: relative; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #c8d0d9; + border-radius: .25rem; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5); + box-shadow: 0 3px 9px rgba(0, 0, 0, .5); +} +.modal-lg .modal-content { + height: 100%; + border-radius: 0; +} +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #5d6f85; +} +.modal-backdrop.fade { + filter: alpha(opacity=0); + opacity: 0; +} +.modal-backdrop.in { + filter: alpha(opacity=87.5); + opacity: .875; +} +.modal-header { + position: relative; + padding: 1rem 3rem 1rem 1.5rem; + border-bottom: 1px solid #c8d0d9; +} +.modal-header .close { + position: absolute; + top: 50%; + right: 1rem; + margin-top: -2px; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + -o-transform: translateY(-50%); + transform: translateY(-50%); +} +.modal-title { + margin: 0; + line-height: 1.5; +} +.modal-body { + position: relative; + padding: 1rem 1.5rem; +} +.modal-footer { + padding: 1rem 1.5rem; + text-align: right; + border-top: 1px solid #c8d0d9; +} +.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; +} +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} +@media (min-width: 768px) { + .modal-dialog { + width: 46rem; + margin: 30px auto; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + } + .modal-sm { + width: 24rem; + } +} +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: .8125rem; + font-style: normal; + font-weight: normal; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + filter: alpha(opacity=0); + opacity: 0; + + line-break: auto; +} +.tooltip.in { + filter: alpha(opacity=90); + opacity: .9; +} +.tooltip.top { + padding: .375rem 0; + margin-top: -.25rem; +} +.tooltip.right { + padding: 0 .375rem; + margin-left: .25rem; +} +.tooltip.bottom { + padding: .375rem 0; + margin-top: .25rem; +} +.tooltip.left { + padding: 0 .375rem; + margin-left: -.25rem; +} +.tooltip-inner { + max-width: 15rem; + padding: .375rem .75rem; + color: #fff; + text-align: center; + background-color: #333d49; + border-radius: .25rem; +} +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -.375rem; + border-width: .375rem .375rem 0; + border-top-color: #333d49; +} +.tooltip.top-left .tooltip-arrow { + right: .375rem; + bottom: 0; + margin-bottom: -.375rem; + border-width: .375rem .375rem 0; + border-top-color: #333d49; +} +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: .375rem; + margin-bottom: -.375rem; + border-width: .375rem .375rem 0; + border-top-color: #333d49; +} +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -.375rem; + border-width: .375rem .375rem .375rem 0; + border-right-color: #333d49; +} +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -.375rem; + border-width: .375rem 0 .375rem .375rem; + border-left-color: #333d49; +} +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -.375rem; + border-width: 0 .375rem .375rem; + border-bottom-color: #333d49; +} +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: .375rem; + margin-top: -.375rem; + border-width: 0 .375rem .375rem; + border-bottom-color: #333d49; +} +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: .375rem; + margin-top: -.375rem; + border-width: 0 .375rem .375rem; + border-bottom-color: #333d49; +} +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 21rem; + padding: 1px; + font-family: "Lato", Helvetica, Arial, sans-serif; + font-size: 16px; + font-style: normal; + font-weight: normal; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + word-wrap: normal; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #c8d0d9; + border-radius: .25rem; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + + line-break: auto; +} +.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: 16px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: -.75rem -.75rem 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 { + content: ""; + border-width: 10px; +} +.popover.top > .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #8c9caf; + border-top-color: #c8d0d9; + border-bottom-width: 0; +} +.popover.top > .arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #fff; + border-bottom-width: 0; +} +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #8c9caf; + border-right-color: #c8d0d9; + border-left-width: 0; +} +.popover.right > .arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #fff; + border-left-width: 0; +} +.popover.bottom > .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #8c9caf; + border-bottom-color: #c8d0d9; +} +.popover.bottom > .arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #fff; +} +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #8c9caf; + border-left-color: #c8d0d9; +} +.popover.left > .arrow:after { + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff; +} +.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; + -o-transition: .6s ease-in-out left; + transition: .6s ease-in-out left; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + line-height: 1; +} +@media all and (transform-3d), (-webkit-transform-3d) { + .carousel-inner > .item { + -webkit-transition: -webkit-transform .6s ease-in-out; + -o-transition: -o-transform .6s ease-in-out; + transition: transform .6s ease-in-out; + + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000px; + perspective: 1000px; + } + .carousel-inner > .item.next, + .carousel-inner > .item.active.right { + left: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + .carousel-inner > .item.prev, + .carousel-inner > .item.active.left { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + .carousel-inner > .item.next.left, + .carousel-inner > .item.prev.right, + .carousel-inner > .item.active { + left: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} +.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: 1rem; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + background-color: rgba(0, 0, 0, 0); + filter: alpha(opacity=50); + opacity: .5; +} +.carousel-control.left { + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, .0001))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .0001)), to(rgba(0, 0, 0, .5))); + background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x; +} +.carousel-control:hover, +.carousel-control:focus { + color: #fff; + text-decoration: none; + filter: alpha(opacity=90); + outline: 0; + opacity: .9; +} +.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; + margin-top: -10px; +} +.carousel-control .icon-prev, +.carousel-control .glyphicon-chevron-left { + left: 50%; + margin-left: -10px; +} +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-right { + right: 50%; + margin-right: -10px; +} +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + font-family: serif; + line-height: 1; +} +.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, .6); +} +.carousel-caption .btn { + text-shadow: none; +} +@media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 1.5rem; + height: 1.5rem; + margin-top: -.5rem; + font-size: 1.5rem; + } + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev { + margin-left: -.5rem; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next { + margin-right: -.5rem; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} +.clearfix:before, +.clearfix:after, +.dl-horizontal dd:before, +.dl-horizontal dd:after, +.form-horizontal .form-group:before, +.form-horizontal .form-group:after, +.btn-toolbar:before, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after, +.nav:before, +.nav:after, +.navbar:before, +.navbar:after, +.navbar-header:before, +.navbar-header:after, +.navbar-collapse:before, +.navbar-collapse:after, +.pager:before, +.pager:after, +.panel-body:before, +.panel-body:after, +.modal-header:before, +.modal-header:after, +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} +.clearfix:after, +.dl-horizontal dd:after, +.form-horizontal .form-group:after, +.btn-toolbar:after, +.btn-group-vertical > .btn-group:after, +.nav:after, +.navbar:after, +.navbar-header:after, +.navbar-collapse:after, +.pager:after, +.panel-body:after, +.modal-header:after, +.modal-footer: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; +} +.affix { + position: fixed; +} +@-ms-viewport { + width: device-width; +} +.visible-xs, +.visible-sm, +.visible-md, +.visible-lg { + display: none !important; +} +.visible-xs-block, +.visible-xs-inline, +.visible-xs-inline-block, +.visible-sm-block, +.visible-sm-inline, +.visible-sm-inline-block, +.visible-md-block, +.visible-md-inline, +.visible-md-inline-block, +.visible-lg-block, +.visible-lg-inline, +.visible-lg-inline-block { + display: none !important; +} +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + table.visible-xs { + display: table !important; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; + } +} +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + table.visible-sm { + display: table !important; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + table.visible-md { + display: table !important; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; + } +} +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + table.visible-lg { + display: table !important; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; + } +} +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; + } +} +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } +} +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } +} +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } +} +.visible-print { + display: none !important; +} +@media print { + .visible-print { + display: block !important; + } + table.visible-print { + display: table !important; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } +} +.visible-print-block { + display: none !important; +} +@media print { + .visible-print-block { + display: block !important; + } +} +.visible-print-inline { + display: none !important; +} +@media print { + .visible-print-inline { + display: inline !important; + } +} +.visible-print-inline-block { + display: none !important; +} +@media print { + .visible-print-inline-block { + display: inline-block !important; + } +} +@media print { + .hidden-print { + display: none !important; + } +} +/*# sourceMappingURL=dw-bootstrap.css.map */ diff --git a/inst/dw-logo@2x.png b/inst/dw-logo@2x.png new file mode 100644 index 0000000..e8085fa Binary files /dev/null and b/inst/dw-logo@2x.png differ diff --git a/inst/rstudio/addins.dcf b/inst/rstudio/addins.dcf new file mode 100644 index 0000000..86b0c53 --- /dev/null +++ b/inst/rstudio/addins.dcf @@ -0,0 +1,22 @@ +# data.world-r +# Copyright 2018 data.world, Inc. + +# Licensed under the Apache License, Version 2.0 (the \"License\"); +# you may not use this file except in compliance with the License. + +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an \"AS IS\" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. See the License for the specific language governing +# permissions and limitations under the License. + +# This product includes software developed at data.world, Inc. +# https://data.world + +Name: New insight +Description: Adds an insight to a data.world project +Binding: add_insight_addin +Interactive: true diff --git a/man/add_insight_addin.Rd b/man/add_insight_addin.Rd new file mode 100644 index 0000000..bc1dc02 --- /dev/null +++ b/man/add_insight_addin.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/insight-addin.R +\name{add_insight_addin} +\alias{add_insight_addin} +\title{Driver function for data.world Insight Add-in} +\usage{ +add_insight_addin() +} +\description{ +Driver function for data.world Insight Add-in +} +\keyword{internal} diff --git a/man/data.world.Rd b/man/data.world.Rd index 7b70e53..6024260 100644 --- a/man/data.world.Rd +++ b/man/data.world.Rd @@ -22,6 +22,12 @@ Use \code{\link{qry_sql}} and \code{\link{qry_sparql}} to construct query object to pass parameters to queries. } +\section{Add-ins}{ + + +Use the included "New insight" add-in to publish plots as project insights from R Studio. +} + \section{REST API}{ diff --git a/man/insight_project_filter.Rd b/man/insight_project_filter.Rd new file mode 100644 index 0000000..2340692 --- /dev/null +++ b/man/insight_project_filter.Rd @@ -0,0 +1,20 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/insight-addin.R +\name{insight_project_filter} +\alias{insight_project_filter} +\title{Filter the specified list of projects to those suitable for selection in +the add-in} +\usage{ +insight_project_filter(project_list) +} +\arguments{ +\item{project_list}{the list of projects} +} +\value{ +the list filtered for those suitable for selection +} +\description{ +Filter the specified list of projects to those suitable for selection in +the add-in +} +\keyword{internal} diff --git a/man/is_attached.Rd b/man/is_attached.Rd deleted file mode 100644 index 3886e59..0000000 --- a/man/is_attached.Rd +++ /dev/null @@ -1,12 +0,0 @@ -% Generated by roxygen2: do not edit by hand -% Please edit documentation in R/zzz.R -\name{is_attached} -\alias{is_attached} -\title{Determine if library is already attached} -\usage{ -is_attached(x) -} -\description{ -Determine if library is already attached -} -\keyword{internal} diff --git a/man/qry_sparql.Rd b/man/qry_sparql.Rd index 2553c9c..0308bdb 100644 --- a/man/qry_sparql.Rd +++ b/man/qry_sparql.Rd @@ -12,8 +12,16 @@ qry_sparql(query_string, params = NULL) \item{params}{Sequence of named query parameters.} } \value{ -Object of type \code{sparql}. +Object of type \code{qry_sparql}. } \description{ Constructor function for SPARQL queries. } +\examples{ +\dontrun{ + sparql_stmt <- data.world::qry_sparql("SELECT ?s ?p ?o + WHERE { + ?s ?p ?o. + }") +} +} diff --git a/man/qry_sql.Rd b/man/qry_sql.Rd index eacd489..828c794 100644 --- a/man/qry_sql.Rd +++ b/man/qry_sql.Rd @@ -12,8 +12,13 @@ qry_sql(query_string, params = NULL) \item{params}{Sequence of positional query parameters.} } \value{ -Object of type \code{sql}. +Object of type \code{qry_sql}. } \description{ Constructor function for SQL queries. } +\examples{ +\dontrun{ + sql_stmt <- data.world::qry_sql("SELECT * FROM Tables") +} +} diff --git a/man/query.Rd b/man/query.Rd index d37342d..f896f44 100644 --- a/man/query.Rd +++ b/man/query.Rd @@ -32,10 +32,18 @@ Execute a query on data.world. \examples{ \dontrun{ - sql_stmt <- data.world::sql("SELECT * FROM Tables") + sql_stmt <- data.world::qry_sql("SELECT * FROM Tables") query_results_df <- data.world::query( sql_stmt, "jonloyens/an-intro-to-dataworld-dataset") } +\dontrun{ + sparql_stmt <- data.world::qry_sparql("SELECT ?s ?p ?o + WHERE { + ?s ?p ?o. + }") + query_results_df <- data.world::query( + sparql_stmt, "jonloyens/an-intro-to-dataworld-dataset") +} } \seealso{ \code{\link{sql}} \code{\link{sparql}} diff --git a/man/save_config.Rd b/man/save_config.Rd index e6b5fd0..29c3b10 100644 --- a/man/save_config.Rd +++ b/man/save_config.Rd @@ -2,7 +2,7 @@ % Please edit documentation in R/config.R \name{save_config} \alias{save_config} -\title{Save configuration to file.} +\title{Save configuration to file in the user's home directory.} \usage{ save_config(auth_token, ..., profile = "DEFAULT") } @@ -17,7 +17,7 @@ save_config(auth_token, ..., profile = "DEFAULT") Object of type \code{\link{cfg_saved}} } \description{ -Save configuration to file. +Save configuration to file in the user's home directory. } \examples{ \dontrun{ diff --git a/man/save_image_as_insight.Rd b/man/save_image_as_insight.Rd new file mode 100644 index 0000000..6f2b66e --- /dev/null +++ b/man/save_image_as_insight.Rd @@ -0,0 +1,25 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/insight-addin.R +\name{save_image_as_insight} +\alias{save_image_as_insight} +\title{Save an image file as a data.world insight} +\usage{ +save_image_as_insight(project_id, title, description = NULL, image_file) +} +\arguments{ +\item{project_id}{the fully-qualified id of the project to house the insight} + +\item{title}{the title of the insight} + +\item{description}{the description of the insight (optional)} + +\item{image_file}{the file path containing the image} +} +\value{ +a list containing the values returned by the upload_file and +create_insight dwapi functions +} +\description{ +Save an image file as a data.world insight +} +\keyword{internal} diff --git a/man/set_config.Rd b/man/set_config.Rd index 5aee67b..d7f537e 100644 --- a/man/set_config.Rd +++ b/man/set_config.Rd @@ -31,7 +31,9 @@ Apply configuration to current R session. }} \examples{ +data.world::set_config(data.world::cfg_saved()) data.world::set_config(data.world::cfg_env()) +data.world::set_config(data.world::cfg("YOUR_TOKEN")) } \seealso{ \code{\link{cfg}} diff --git a/man/set_dw_config.Rd b/man/set_dw_config.Rd new file mode 100644 index 0000000..7255f12 --- /dev/null +++ b/man/set_dw_config.Rd @@ -0,0 +1,12 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/zzz.R +\name{set_dw_config} +\alias{set_dw_config} +\title{Apply configuration from file or envvars and load dwapi} +\usage{ +set_dw_config() +} +\description{ +Apply configuration from file or envvars and load dwapi +} +\keyword{internal} diff --git a/tests/testthat.R b/tests/testthat.R index 20695c8..41834a9 100644 --- a/tests/testthat.R +++ b/tests/testthat.R @@ -1,5 +1,5 @@ "data.world-r -Copyright 2017 data.world, Inc. +Copyright 2018 data.world, Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. diff --git a/tests/testthat/helper.R b/tests/testthat/helper.R index d895a81..e13d739 100644 --- a/tests/testthat/helper.R +++ b/tests/testthat/helper.R @@ -1,5 +1,5 @@ "data.world-r -Copyright 2017 data.world, Inc. +Copyright 2018 data.world, Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. @@ -70,23 +70,31 @@ with_options <- function(..., .env = parent.frame()) { } } -#' Set up tempdir for tests then delete it after tests run -#' -#' @param ... Tests to run. -#' @keywords internal -with_tmpdir <- function(..., .env = parent.frame()) { +dw_test_that <- function(...) { + auth_token_bkp <- getOption("dwapi.auth_token") on.exit({ - unlink(tempdir(), recursive = TRUE, force = FALSE) + options(dwapi.auth_token = auth_token_bkp) + }) + + options(dwapi.auth_token = "API_TOKEN") + + create_tmp_dir() #nolint + tryCatch({ + return(testthat::test_that(...)) }, - add = TRUE) + finally = { + cleanup_tmp_dir() #nolint + }) +} +cleanup_tmp_dir <- function() { + unlink(tempdir(), recursive = TRUE, force = FALSE) +} + +create_tmp_dir <- function() { tmp_dir <- tempdir() if (!dir.exists(tmp_dir)) { dir.create(tmp_dir, recursive = TRUE) } - - tests <- eval(substitute(alist(...))) - for (test in tests) { - eval(test, .env) - } + return(tmp_dir) } diff --git a/tests/testthat/test_config.R b/tests/testthat/test_config.R index 6b19c7d..73e6b23 100644 --- a/tests/testthat/test_config.R +++ b/tests/testthat/test_config.R @@ -1,5 +1,5 @@ "data.world-r -Copyright 2017 data.world, Inc. +Copyright 2018 data.world, Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. @@ -16,14 +16,14 @@ permissions and limitations under the License. This product includes software developed at data.world, Inc. https://data.world" -testthat::test_that("Config can be changed using runtime variables.", +dw_test_that("Config can be changed using runtime variables.", with_options({ runtime_cfg <- data.world::cfg(auth_token = "RUNTIME_TOKEN") data.world::set_config(runtime_cfg) testthat::expect_equal(getOption("dw.auth_token"), "RUNTIME_TOKEN") })) -testthat::test_that( +dw_test_that( "Config can be changed using default environment variables.", with_options(with_envvars(DW_AUTH_TOKEN = "DEFAULT_ENV_VAR_TOKEN", { environment_cfg <- data.world::cfg_env() @@ -32,7 +32,7 @@ testthat::test_that( })) ) -testthat::test_that( +dw_test_that( "Config can be changed using custom environment variables.", with_options(with_envvars(MY_TEST_VAR = "CUSTOM_ENV_VAR_TOKEN", { environment_cfg <- @@ -42,7 +42,7 @@ testthat::test_that( })) ) -testthat::test_that("Config won't change if environment variable is not set.", +dw_test_that("Config won't change if environment variable is not set.", with_options({ auth_token <- getOption("dw.auth_token") environment_cfg <- @@ -51,7 +51,7 @@ testthat::test_that("Config won't change if environment variable is not set.", testthat::expect_equal(getOption("dw.auth_token"), auth_token) })) -testthat::test_that( +dw_test_that( "Config can be changed using configuration file.", with_options(dw.config_path = "resources/single_profile_config", { data.world::set_config(data.world::cfg_saved()) @@ -59,7 +59,7 @@ testthat::test_that( }) ) -testthat::test_that( +dw_test_that( "Config can be changed using configuration file and multiple profiles.", with_options(dw.config_path = "resources/multiple_profile_config", { data.world::set_config(data.world::cfg_saved(profile = "CUSTOM_PROFILE")) @@ -67,7 +67,7 @@ testthat::test_that( }) ) -testthat::test_that( +dw_test_that( "Config won't change using configuration file that does not exist.", with_options({ auth_token <- getOption("dw.auth_token") @@ -76,7 +76,7 @@ testthat::test_that( testthat::expect_equal(getOption("dw.auth_token"), auth_token) })) -testthat::test_that( +dw_test_that( "Config won't change using configuration profile that does not exist.", with_options({ auth_token <- getOption("dw.auth_token") @@ -87,45 +87,39 @@ testthat::test_that( testthat::expect_equal(getOption("dw.auth_token"), auth_token) })) -testthat::test_that("Config file can be created", { - with_tmpdir({ - tmp_cfg <- file.path(tempdir(), "new-subdir", "config") - with_options(dw.config_path = tmp_cfg, { - data.world::save_config(auth_token = "TEST") - testthat::expect(file.exists(tmp_cfg), - paste0("Config file created at ", tmp_cfg)) - config <- ini::read.ini(tmp_cfg) - testthat::expect_equal(config$DEFAULT, list(auth_token = "TEST")) - }) +dw_test_that("Config file can be created", { + tmp_cfg <- file.path(tempdir(), "new-subdir", "config") + with_options(dw.config_path = tmp_cfg, { + data.world::save_config(auth_token = "TEST") + testthat::expect(file.exists(tmp_cfg), + paste0("Config file created at ", tmp_cfg)) + config <- ini::read.ini(tmp_cfg) + testthat::expect_equal(config$DEFAULT, list(auth_token = "TEST")) }) }) -testthat::test_that("Config file can be updated.", { - with_tmpdir({ - tmp_cfg <- file.path(tempdir(), "config") - file.copy("resources/single_profile_config", tmp_cfg) - with_options(dw.config_path = tmp_cfg, { - data.world::save_config(auth_token = "TEST") - testthat::expect(file.exists(tmp_cfg), - paste0("Config file created at ", tmp_cfg)) - config <- ini::read.ini(tmp_cfg) - testthat::expect_equal(config$DEFAULT, list(auth_token = "TEST")) - }) +dw_test_that("Config file can be updated.", { + tmp_cfg <- file.path(tempdir(), "config") + file.copy("resources/single_profile_config", tmp_cfg) + with_options(dw.config_path = tmp_cfg, { + data.world::save_config(auth_token = "TEST") + testthat::expect(file.exists(tmp_cfg), + paste0("Config file created at ", tmp_cfg)) + config <- ini::read.ini(tmp_cfg) + testthat::expect_equal(config$DEFAULT, list(auth_token = "TEST")) }) }) -testthat::test_that("Config file can be updated with new profile.", { - with_tmpdir({ - tmp_cfg <- file.path(tempdir(), "config") - file.copy("resources/single_profile_config", tmp_cfg) - with_options(dw.config_path = tmp_cfg, { - data.world::save_config(auth_token = "TEST", profile = "SECOND_PROFILE") - testthat::expect(file.exists(tmp_cfg), - paste0("Config file created at ", tmp_cfg)) - config <- ini::read.ini(tmp_cfg) - testthat::expect_equal( - config$DEFAULT, list(auth_token = "SINGLE_SAVED_TOKEN")) - testthat::expect_equal(config$SECOND_PROFILE, list(auth_token = "TEST")) - }) +dw_test_that("Config file can be updated with new profile.", { + tmp_cfg <- file.path(tempdir(), "config") + file.copy("resources/single_profile_config", tmp_cfg) + with_options(dw.config_path = tmp_cfg, { + data.world::save_config(auth_token = "TEST", profile = "SECOND_PROFILE") + testthat::expect(file.exists(tmp_cfg), + paste0("Config file created at ", tmp_cfg)) + config <- ini::read.ini(tmp_cfg) + testthat::expect_equal( + config$DEFAULT, list(auth_token = "SINGLE_SAVED_TOKEN")) + testthat::expect_equal(config$SECOND_PROFILE, list(auth_token = "TEST")) }) }) diff --git a/tests/testthat/test_insight-addin.R b/tests/testthat/test_insight-addin.R new file mode 100644 index 0000000..ba309a9 --- /dev/null +++ b/tests/testthat/test_insight-addin.R @@ -0,0 +1,83 @@ +"data.world-r +Copyright 2018 data.world, Inc. + +Licensed under the Apache License, Version 2.0 (the \"License\"); +you may not use this file except in compliance with the License. + +You may obtain a copy of the License at +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an \"AS IS\" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied. See the License for the specific language governing +permissions and limitations under the License. + +This product includes software developed at data.world, Inc. +https://data.world" + +dw_test_that( + "Title required", { + expect_error(save_image_as_insight(title = NULL, project_id = "oid/pid"), + regexp = "title.+cannot.+null") + } +) + +dw_test_that( + "Project required", { + expect_error(save_image_as_insight(title = "title", project_id = NULL), + regexp = "project_id.+cannot.+null") + } +) + +dw_test_that( + "Project format", { + expect_error(save_image_as_insight(title = "title", + project_id = "myproject"), + regexp = "project_id.+invalid") + } +) + +dw_test_that( + "Projects filtered", { + test_project_list <- list( + list("accessLevel" = "ADMIN", "id" = "o/p1"), + list("accessLevel" = "WRITE", "id" = "o/p2"), + list("accessLevel" = "READ", "id" = "o/p3"), + list("accessLevel" = "NONE", "id" = "o/p4") + ) + filtered_project_list <- insight_project_filter(test_project_list) + expect_equal(2, length(filtered_project_list)) + expect_equal(0, length(setdiff( + c("o/p1", "o/p2"), + sapply(filtered_project_list, function(p) p$id) + ))) + } +) + +dw_test_that( + "Insight saved", { + response <- with_mock( + `dwapi::upload_file` = function(project_id, image_file, fn) { + ret <- list() + ret$message <- "File uploaded" + class(ret) <- "success_message" + ret + }, + `dwapi::create_insight` = function( + project_owner, project_id, create_insight_req) { + ret <- list() + ret$message <- "Insight created successfully." + ret$uri <- "https://data.world/test" + class(ret) <- "create_insight_response" + ret + }, + save_image_as_insight("ownerid/projectid", "title", + image_file = tempfile()) + ) + expect_equal(2, length(response)) + expected_names <- c("upload_result", "insight_result") + expect_equal(0, length(setdiff(expected_names, names(response)))) + expect_equal(0, length(setdiff(y = expected_names, names(response)))) + } +) diff --git a/tests/testthat/test_query.R b/tests/testthat/test_query.R index 1d8b5ee..6bbeb91 100644 --- a/tests/testthat/test_query.R +++ b/tests/testthat/test_query.R @@ -1,5 +1,5 @@ "data.world-r -Copyright 2017 data.world, Inc. +Copyright 2018 data.world, Inc. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. @@ -16,28 +16,25 @@ permissions and limitations under the License. This product includes software developed at data.world, Inc. https://data.world" -testthat::test_that("SQL query making correct calls", { +dw_test_that("SQL query making correct calls", { sql_query <- "SELECT * FROM TableName LIMIT 10" params <- list("value1", 1L, 1, TRUE, 1.5) dataset_key <- "ownerid/datasetid" mock_response <- readr::read_csv("resources/sample.csv") - testthat::with_mock( + ret <- testthat::with_mock( `dwapi::sql` = function(dataset, query, query_params) { testthat::expect_equal(dataset, dataset_key) testthat::expect_equal(query, sql_query) testthat::expect_equal(query_params, params) return(mock_response) }, - { # nolint - ret <- data.world::query( qry_sql(sql_query, params = params), dataset_key) - testthat::expect_equal(ret, mock_response) - } ) + testthat::expect_equal(ret, mock_response) }) -testthat::test_that("SPARQL query making correct calls", { +dw_test_that("SPARQL query making correct calls", { sql_query <- "SELECT * WHERE { ?s ?p ?o }" params <- list( key1 = "value1", @@ -48,18 +45,15 @@ testthat::test_that("SPARQL query making correct calls", { ) dataset_key <- "ownerid/datasetid" mock_response <- readr::read_csv("resources/sample.csv") - testthat::with_mock( + ret <- testthat::with_mock( `dwapi::sparql` = function(dataset, query, query_params) { testthat::expect_equal(dataset, dataset_key) testthat::expect_equal(query, sql_query) testthat::expect_equal(query_params, params) return(mock_response) }, - { # nolint - ret <- data.world::query( qry_sparql(sql_query, params = params), dataset_key) - testthat::expect_equal(ret, mock_response) - } ) - }) + testthat::expect_equal(ret, mock_response) +}) diff --git a/vignettes/new_insight_menu.png b/vignettes/new_insight_menu.png new file mode 100644 index 0000000..77d7312 Binary files /dev/null and b/vignettes/new_insight_menu.png differ diff --git a/vignettes/new_insight_window.png b/vignettes/new_insight_window.png new file mode 100644 index 0000000..84c7101 Binary files /dev/null and b/vignettes/new_insight_window.png differ diff --git a/vignettes/query.Rmd b/vignettes/query.Rmd index 6777e98..7d23c69 100644 --- a/vignettes/query.Rmd +++ b/vignettes/query.Rmd @@ -12,8 +12,8 @@ CONFIGURED <- !is.null(getOption("dw.auth_token")) knitr::opts_chunk$set( collapse = FALSE, comment = "##", - purl = NOT_CRAN & CONFIGURED, - eval = NOT_CRAN & CONFIGURED + purl = NOT_CRAN && CONFIGURED, + eval = NOT_CRAN && CONFIGURED ) ``` @@ -121,7 +121,7 @@ data.world::query(assists_vs_height, intro_ds) Similarly, the previous parameterized query from the SQL example can be translated to SPARQL as follows: -```{r SPARQL parameterized} +```{r SPARQL parameterized, eval = FALSE} assists_greater_than <- data.world::qry_sparql(paste( "BASE ", "PREFIX t: ", diff --git a/vignettes/quickstart.Rmd b/vignettes/quickstart.Rmd index f77f01c..43545f9 100644 --- a/vignettes/quickstart.Rmd +++ b/vignettes/quickstart.Rmd @@ -12,8 +12,8 @@ CONFIGURED <- !is.null(getOption("dw.auth_token")) knitr::opts_chunk$set( collapse = FALSE, comment = "##", - purl = NOT_CRAN & CONFIGURED, - eval = NOT_CRAN & CONFIGURED + purl = NOT_CRAN && CONFIGURED, + eval = NOT_CRAN && CONFIGURED ) ``` @@ -61,6 +61,24 @@ team_df For additional examples, including parameterized queries and SPARQL, see `query` vignette. +## Publishing Insights + +For your convenience, this package allows you to publish +[insights](https://meta.data.world/showcasing-your-data-work-using-insights-9c578698275b) +to +[data projects](https://meta.data.world/introducing-data-projects-e7cfa971b552) +without leaving R Studio. + +Using R Studio's "Addins" menu, look for `DATA.WORLD > New insight`. + +![Add-in Menu](new_insight_menu.png) + +The add-in will automatically capture the active plot in R Studio's plot +view and give you the opportunity to quickly choose the project, and enter +title and description for your insight. + +![Add-in Window](new_insight_window.png) + ## data.world REST API The `dwapi` package simplifies access to data.world REST APIs.