From 9e2d43e4682b30e4ac0a87b7754a48f448c0a2de Mon Sep 17 00:00:00 2001 From: steveperry-53 Date: Sat, 10 Sep 2016 22:16:28 -0700 Subject: [PATCH 01/21] Integrate bootcamp into Kubernetes docs. --- _data/globals.yml | 3 +- _data/tutorials.yml | 54 + _layouts/docwithnav.html | 87 +- .../getting-started/cluster-interactive.html | 46 + .../getting-started/cluster-intro.html | 110 + .../getting-started/create-cluster.html | 53 + .../tutorials/getting-started/deploy-app.html | 58 + .../getting-started/deploy-interactive.html | 49 + .../getting-started/deploy-intro.html | 112 + .../getting-started/explore-app.html | 59 + .../getting-started/explore-interactive.html | 49 + .../getting-started/explore-intro.html | 146 + .../tutorials/getting-started/expose-app.html | 60 + .../getting-started/expose-interactive.html | 47 + .../getting-started/expose-intro.html | 140 + docs/tutorials/getting-started/index.html | 103 + .../getting-started/public/css/styles.css | 10274 ++++++++++++++++ .../public/images/badge-01.svg | 1 + .../public/images/badge-02.svg | 1 + .../public/images/badge-03.svg | 1 + .../public/images/badge-04.svg | 1 + .../public/images/badge-05.svg | 1 + .../public/images/badge-06.svg | 1 + .../public/images/badge-07.svg | 1 + .../public/images/badge-08.svg | 1 + .../public/images/badge-09.svg | 1 + .../getting-started/public/images/badge-1.png | Bin 0 -> 7369 bytes .../getting-started/public/images/dislike.svg | 1 + .../getting-started/public/images/like.svg | 1 + .../getting-started/public/images/logo.png | Bin 0 -> 11473 bytes .../getting-started/public/images/logo.svg | 1 + .../getting-started/public/images/logo_2.svg | 1 + .../public/images/logo_mobile.png | Bin 0 -> 2084 bytes .../public/images/module_01.svg | 1 + .../public/images/module_01_cluster.svg | 467 + .../public/images/module_02.svg | 1 + .../public/images/module_02_first_app.svg | 576 + .../public/images/module_03.svg | 1 + .../public/images/module_03_nodes.svg | 521 + .../public/images/module_03_pods.svg | 484 + .../public/images/module_04.svg | 1 + .../public/images/module_04_labels.svg | 710 ++ .../public/images/module_04_services.svg | 463 + .../public/images/module_05.svg | 1 + .../public/images/module_05_scaling1.svg | 313 + .../public/images/module_05_scaling2.svg | 395 + .../public/images/module_06.svg | 1 + .../images/module_06_rollingupdates1.svg | 395 + .../images/module_06_rollingupdates2.svg | 543 + .../images/module_06_rollingupdates3.svg | 493 + .../images/module_06_rollingupdates4.svg | 508 + .../public/images/nav_point.png | Bin 0 -> 1223 bytes .../public/images/nav_point.svg | 1 + .../public/images/nav_point_active.png | Bin 0 -> 506 bytes .../public/images/nav_point_active.svg | 1 + .../public/images/nav_point_sub.svg | 1 + .../public/images/quiz_false.png | Bin 0 -> 2531 bytes .../public/images/quiz_true.png | Bin 0 -> 2556 bytes .../getting-started/public/images/twitter.png | Bin 0 -> 3846 bytes docs/tutorials/getting-started/scale-app.html | 58 + .../getting-started/scale-interactive.html | 49 + .../getting-started/scale-intro.html | 124 + .../tutorials/getting-started/update-app.html | 60 + .../getting-started/update-interactive.html | 42 + .../getting-started/update-intro.html | 139 + 65 files changed, 17766 insertions(+), 46 deletions(-) create mode 100644 _data/tutorials.yml create mode 100644 docs/tutorials/getting-started/cluster-interactive.html create mode 100644 docs/tutorials/getting-started/cluster-intro.html create mode 100644 docs/tutorials/getting-started/create-cluster.html create mode 100644 docs/tutorials/getting-started/deploy-app.html create mode 100644 docs/tutorials/getting-started/deploy-interactive.html create mode 100644 docs/tutorials/getting-started/deploy-intro.html create mode 100644 docs/tutorials/getting-started/explore-app.html create mode 100644 docs/tutorials/getting-started/explore-interactive.html create mode 100644 docs/tutorials/getting-started/explore-intro.html create mode 100644 docs/tutorials/getting-started/expose-app.html create mode 100644 docs/tutorials/getting-started/expose-interactive.html create mode 100644 docs/tutorials/getting-started/expose-intro.html create mode 100644 docs/tutorials/getting-started/index.html create mode 100644 docs/tutorials/getting-started/public/css/styles.css create mode 100644 docs/tutorials/getting-started/public/images/badge-01.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-02.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-03.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-04.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-05.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-06.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-07.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-08.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-09.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-1.png create mode 100644 docs/tutorials/getting-started/public/images/dislike.svg create mode 100644 docs/tutorials/getting-started/public/images/like.svg create mode 100644 docs/tutorials/getting-started/public/images/logo.png create mode 100644 docs/tutorials/getting-started/public/images/logo.svg create mode 100644 docs/tutorials/getting-started/public/images/logo_2.svg create mode 100644 docs/tutorials/getting-started/public/images/logo_mobile.png create mode 100644 docs/tutorials/getting-started/public/images/module_01.svg create mode 100644 docs/tutorials/getting-started/public/images/module_01_cluster.svg create mode 100644 docs/tutorials/getting-started/public/images/module_02.svg create mode 100644 docs/tutorials/getting-started/public/images/module_02_first_app.svg create mode 100644 docs/tutorials/getting-started/public/images/module_03.svg create mode 100644 docs/tutorials/getting-started/public/images/module_03_nodes.svg create mode 100644 docs/tutorials/getting-started/public/images/module_03_pods.svg create mode 100644 docs/tutorials/getting-started/public/images/module_04.svg create mode 100644 docs/tutorials/getting-started/public/images/module_04_labels.svg create mode 100644 docs/tutorials/getting-started/public/images/module_04_services.svg create mode 100644 docs/tutorials/getting-started/public/images/module_05.svg create mode 100644 docs/tutorials/getting-started/public/images/module_05_scaling1.svg create mode 100644 docs/tutorials/getting-started/public/images/module_05_scaling2.svg create mode 100644 docs/tutorials/getting-started/public/images/module_06.svg create mode 100644 docs/tutorials/getting-started/public/images/module_06_rollingupdates1.svg create mode 100644 docs/tutorials/getting-started/public/images/module_06_rollingupdates2.svg create mode 100644 docs/tutorials/getting-started/public/images/module_06_rollingupdates3.svg create mode 100644 docs/tutorials/getting-started/public/images/module_06_rollingupdates4.svg create mode 100644 docs/tutorials/getting-started/public/images/nav_point.png create mode 100644 docs/tutorials/getting-started/public/images/nav_point.svg create mode 100644 docs/tutorials/getting-started/public/images/nav_point_active.png create mode 100644 docs/tutorials/getting-started/public/images/nav_point_active.svg create mode 100644 docs/tutorials/getting-started/public/images/nav_point_sub.svg create mode 100644 docs/tutorials/getting-started/public/images/quiz_false.png create mode 100644 docs/tutorials/getting-started/public/images/quiz_true.png create mode 100644 docs/tutorials/getting-started/public/images/twitter.png create mode 100644 docs/tutorials/getting-started/scale-app.html create mode 100644 docs/tutorials/getting-started/scale-interactive.html create mode 100644 docs/tutorials/getting-started/scale-intro.html create mode 100644 docs/tutorials/getting-started/update-app.html create mode 100644 docs/tutorials/getting-started/update-interactive.html create mode 100644 docs/tutorials/getting-started/update-intro.html diff --git a/_data/globals.yml b/_data/globals.yml index fd3be92a16..dd96f60706 100644 --- a/_data/globals.yml +++ b/_data/globals.yml @@ -1,5 +1,6 @@ tocs: - guides +- tutorials - reference - samples -- support \ No newline at end of file +- support diff --git a/_data/tutorials.yml b/_data/tutorials.yml new file mode 100644 index 0000000000..ddeb55cc7b --- /dev/null +++ b/_data/tutorials.yml @@ -0,0 +1,54 @@ +bigheader: "Tutorials" +toc: +- title: Tutorials + path: /docs/tutorials/getting-started/ +- title: Getting Started + section: + - title: 1. Create a Cluster + section: + - title: Creating a Cluster + path: /docs/tutorials/getting-started/create-cluster/ + - title: Using Minikube to Create a Cluster + path: /docs/tutorials/getting-started/cluster-intro/ + - title: Interactive Tutorial - Creating a Cluster + path: /docs/tutorials/getting-started/cluster-interactive/ + - title: 2. Deploy an App + section: + - title: Deploying an App + path: /docs/tutorials/getting-started/deploy-app/ + - title: Using kubectl to Create a Deployment + path: /docs/tutorials/getting-started/deploy-intro/ + - title: Interactive Tutorial - Deploying an App + path: /docs/tutorials/getting-started/deploy-interactive/ + - title: 3. Explore Your App + section: + - title: Exploring Your App + path: /docs/tutorials/getting-started/explore-app/ + - title: Viewing Pods and Nodes + path: /docs/tutorials/getting-started/explore-intro/ + - title: Interactive Tutorial - Exploring Your App + path: /docs/tutorials/getting-started/explore-interactive/ + - title: 4. Expose Your App Publicly + section: + - title: Exposing Your App Publicly + path: /docs/tutorials/getting-started/expose-app/ + - title: Using a Service to Expose Your App + path: /docs/tutorials/getting-started/expose-intro/ + - title: Interactive Tutorial - Exposing Your App + path: /docs/tutorials/getting-started/expose-interactive/ + - title: 5. Scale Your App + section: + - title: Scaling Your App + path: /docs/tutorials/getting-started/scale-app/ + - title: Running Multiple Instances of Your App + path: /docs/tutorials/getting-started/scale-intro/ + - title: Interactive Tutorial - Scaling Your App + path: /docs/tutorials/getting-started/scale-interactive/ + - title: 6. Update Your App + section: + - title: Updating Your App + path: /docs/tutorials/getting-started/update-app/ + - title: Performing a Rolling Update + path: /docs/tutorials/getting-started/update-intro/ + - title: Interactive Tutorial - Updating Your App + path: /docs/tutorials/getting-started/update-interactive/ diff --git a/_layouts/docwithnav.html b/_layouts/docwithnav.html index c4405630f3..66e4eb6c90 100755 --- a/_layouts/docwithnav.html +++ b/_layouts/docwithnav.html @@ -7,48 +7,45 @@
-

{{ site.data[foundTOC].bigheader }}

-
{{ site.data[foundTOC].abstract }}
-
- - -
+

{{ site.data[foundTOC].bigheader }}

+
{{ site.data[foundTOC].abstract }}
+
+ + +
-
+
{% assign tree = site.data[foundTOC].toc %}{% include tree.html %}
- -
-
+ +
+

Edit This Page

- {% if notitle != "true" %}

{{ title }}

{% endif %} - {{ content }} + {% if notitle != "true" %}

{{ title }}

{% endif %} + {{ content }}

Analytics - {% if page.url != "/404.html" && page.url != "/docs/search/" %}

- - Create Issue - {% endif %} -
+ {% if page.url != "/404.html" and page.url != "/docs/search/" %}
+ {% endif %} +
{% include footer.html %} @@ -56,23 +53,21 @@ @@ -80,3 +75,5 @@ +Contact GitHub API Training Shop Blog About +© 2016 GitHub, Inc. Terms Privacy Security Status Help diff --git a/docs/tutorials/getting-started/cluster-interactive.html b/docs/tutorials/getting-started/cluster-interactive.html new file mode 100644 index 0000000000..6af54cb0e6 --- /dev/null +++ b/docs/tutorials/getting-started/cluster-interactive.html @@ -0,0 +1,46 @@ +--- +--- + + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+
+
+
+ To interact with the Terminal, please use the desktop/tablet version +
+
+
+ + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/cluster-intro.html b/docs/tutorials/getting-started/cluster-intro.html new file mode 100644 index 0000000000..c3a479cabd --- /dev/null +++ b/docs/tutorials/getting-started/cluster-intro.html @@ -0,0 +1,110 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+ +
+
+

+ Kubernetes coordinates a highly available cluster of computers that are connected to work as a single unit. The abstractions in Kubernetes allow you to deploy containerized applications to a cluster without tying them specifically to individual machines. To make use of this new model of deployment, applications need to be packaged in a way that decouples them from individual hosts: they need to be containerized. Containerized applications are more flexible and available than in past deployment models, where applications were installed directly onto specific machines as packages deeply integrated into the host. Kubernetes automates the distribution and scheduling of application containers across a cluster in a more efficient way. Kubernetes is an open-source platform and is production-ready. +

+

A Kubernetes cluster consists of two types of resources: +

    +
  • The Master coordinates the cluster
  • +
  • Nodes are the workers that run applications
  • +
+

+
+ +
+
+

Summary:

+
    +
  • Kubernetes cluster
  • +
  • Minikube
  • +
+
+
+

+ Kubernetes is a production-grade, open-source platform that orchestrates the placement (scheduling) and execution of application containers within and across computer clusters. +

+
+
+
+
+ +
+
+

Cluster Diagram

+
+
+ +
+
+

+
+
+
+ +
+
+

The Master is responsible for managing the cluster. The master coordinates all activity in your cluster, such as scheduling applications, maintaining applications' desired state, scaling applications, and rolling out new updates.

+

A node is a VM or a physical computer that serves as a worker machine in a Kubernetes cluster. Each node has a Kubelet, which is an agent for managing the node and communicating with the Kubernetes master. The node should also have tools for handling container operations, such as Docker or rkt. A Kubernetes cluster that handles production traffic should have a minimum of three nodes.

+ +
+
+
+

Masters manage the cluster and the nodes are used to host the running applications.

+
+
+
+ +
+
+

When you deploy applications on Kubernetes, you tell the master to start the application containers. The master schedules the containers to run on the cluster's nodes. The nodes communicate with the master using the Kubernetes API, which the master exposes. End users can also use the Kubernetes API directly to interact with the cluster.

+ +

A Kubernetes cluster can be deployed on either physical or virtual machines. To get started with Kubernetes development, you can use minikube. Minikube is a is a lightweight Kubernetes implementation that creates a VM on your local machine and deploys a simple cluster containing only one node. Minikube is available for Linux, Mac OS and Windows systems. The minikube CLI provides basic bootstrapping operations for working with your cluster, including start, stop, status, and delete. For this bootcamp, however, you'll use a provided online terminal with minikube pre-installed.

+ +

Now that you know what Kubernetes is, let’s go to the online tutorial and start our first cluster!

+ +
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/create-cluster.html b/docs/tutorials/getting-started/create-cluster.html new file mode 100644 index 0000000000..29135e7a9f --- /dev/null +++ b/docs/tutorials/getting-started/create-cluster.html @@ -0,0 +1,53 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+

Module overview

+
    +
  • learn what a Kubernetes cluster is
  • +
  • learn what minikube is
  • +
  • start a Kubernetes cluster using an online terminal
  • +
+

+
+
+
+

What you need to know first

+

+ Before you do this tutorial, you should be familiar with Linux containers. +

+
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/deploy-app.html b/docs/tutorials/getting-started/deploy-app.html new file mode 100644 index 0000000000..2267fae038 --- /dev/null +++ b/docs/tutorials/getting-started/deploy-app.html @@ -0,0 +1,58 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+

Module overview

+
    +
  • Learn about application Deployments
  • +
  • Deploy your first app on Kubernetes with Kubectl
  • +
+

+
+
+
+

What you need to know first

+

+ How to start a Kubernetes cluster with minikube
+

+
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/deploy-interactive.html b/docs/tutorials/getting-started/deploy-interactive.html new file mode 100644 index 0000000000..49d8c5c96e --- /dev/null +++ b/docs/tutorials/getting-started/deploy-interactive.html @@ -0,0 +1,49 @@ +--- +--- + + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+
+
+
+ To interact with the Terminal, please use the desktop/tablet version +
+ +
+
+ +
+ + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/deploy-intro.html b/docs/tutorials/getting-started/deploy-intro.html new file mode 100644 index 0000000000..fd6adf0804 --- /dev/null +++ b/docs/tutorials/getting-started/deploy-intro.html @@ -0,0 +1,112 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+ +
+
+

+ Once you have a running Kubernetes cluster, you can deploy your containerized applications on top of it. To do so, you create a Kubernetes Deployment. The Deployment is responsible for creating and updating instances of your application. Once you've created a Deployment, the Kubernetes master schedules the application instances that the Deployment creates onto individual Nodes in the cluster. +

+ +

Once the application instances are created, a Kubernetes Deployment Controller continuously monitors those instances. The Deployment controller replaces an instance if the Node hosting it goes down or it is deleted. This provides a self-healing mechanism to address machine failure or maintenance.

+ +

In a pre-orchestration world, installation scripts would often be used to start applications, but they did not allow recovery from machine failure. By both creating your application instances and keeping them running across Nodes, Kubernetes Deployments provide a fundamentally different approach to application management.

+ +
+ +
+
+

Summary:

+
    +
  • Deployments
  • +
  • Kubectl
  • +
+
+
+

+ A Deployment is responsible for creating and updating instances of your application +

+
+
+
+
+ +
+
+

Deploying your first app on Kubernetes

+
+
+ +
+
+

+
+
+
+ +
+
+ +

You can create and manage a Deployment by using the Kubernetes command line interface, Kubectl. Kubectl uses the Kubernetes API to interact with the cluster. In this module, you'll learn the most common Kubectl commands needed to create Deployments that run your applications on a Kubernetes cluster.

+ +

When you create a Deployment, you'll need to specify the container image for your application and the number of replicas that you want to run. You can change that information later by updating your Deployment; Modules 5 and 6 of the bootcamp discuss how you can update your Deployments.

+ + + + +
+
+
+

Applications need to be packaged into one of the supported container formats in order to be deployed on Kubernetes

+
+
+
+ +
+
+

For our first Deployment, we’ll use a NodeJS application packaged in a Docker container. The source code and the Dockerfile are available in the GitHub repository for the Kubernetes Bootcamp.

+ +

Now that you know what Deployments are, let’s go to the online tutorial and deploy our first app!

+ +
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/explore-app.html b/docs/tutorials/getting-started/explore-app.html new file mode 100644 index 0000000000..f3ae4ead91 --- /dev/null +++ b/docs/tutorials/getting-started/explore-app.html @@ -0,0 +1,59 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+

Module overview

+
    +
  • Learn about Kubernetes Pods
  • +
  • Learn about Kubernetes Nodes
  • +
  • Troubleshoot deployed applications
  • +
+

+
+
+
+

What you need to know first

+

+ What are Deployments
+ How to deploy applications on Kubernetes +

+
+
+
+ + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/explore-interactive.html b/docs/tutorials/getting-started/explore-interactive.html new file mode 100644 index 0000000000..812ced442f --- /dev/null +++ b/docs/tutorials/getting-started/explore-interactive.html @@ -0,0 +1,49 @@ +--- +--- + + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+
+
+ +
+ To interact with the Terminal, please use the desktop/tablet version +
+ +
+
+
+ + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/explore-intro.html b/docs/tutorials/getting-started/explore-intro.html new file mode 100644 index 0000000000..4b6f13e165 --- /dev/null +++ b/docs/tutorials/getting-started/explore-intro.html @@ -0,0 +1,146 @@ +--- +--- + + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+ +
+
+

Pods

+

When you created a Deployment in Module 2, Kubernetes created a Pod to host your application instance. A Pod is Kubernetes abstraction that represents a group of one or more application containers (such as Docker or rkt), and some shared resources for those containers. Those resources include:

+
    +
  • Shared storage, as Volumes
  • +
  • Networking, as a unique cluster IP address
  • +
  • Information about how to run each container, such as the container image version or specific ports to use
  • +
+

A Pod models an application-specific “logical host” and can contain different application containers which are relatively tightly coupled. For example, a Pod might include both the container with your Node.js app as well as a different container that feeds the data to be published by the Node.js webserver. The containers in a Pod share an IP Address and port space, are always co-located and co-scheduled, and run in a shared context on the same Node.

+ +

Pods are the atomic unit on the Kubernetes platform. When we create a Deployment on Kubernetes, that Deployment creates Pods with containers inside them (as opposed to creating containers directly). Each Pod is tied to the Node where it is scheduled, and remains there until termination (according to restart policy) or deletion. In case of a Node failure, identical Pods are scheduled on other available Nodes in the cluster.

+ +
+
+
+

Summary:

+
    +
  • Pods
  • +
  • Nodes
  • +
  • Kubectl main commands
  • +
+
+
+

+ A Pod is a group of one or more application containers (such as Docker or rkt) and includes shared storage (volumes), IP address and information about how to run them. +

+
+
+
+
+ +
+
+

Pods overview

+
+
+ +
+
+

+
+
+
+ +
+
+

Nodes

+

A Pod always runs on a Node. A Node is a worker machine in Kubernetes and may be either a virtual or a physical machine, depending on the cluster. Each Node is managed by the Master. A Node can have multiple pods, and the Kubernetes master automatically handles scheduling the pods across the Nodes in the cluster. The Master's automatic scheduling takes into account the available resources on each Node.

+ +

Every Kubernetes Node runs at least:

+
    +
  • Kubelet, a process responsible for communication between the Kubernetes Master and the Nodes; it manages the Pods and the containers running on a machine.
  • +
  • A container runtime (like Docker, rkt) responsible for pulling the container image from a registry, unpacking the container, and running the application.
  • +
+ +
+
+
+

Containers should only be scheduled together in a single Pod if they are tightly coupled and need to share resources such as disk.

+
+
+
+ +
+ +
+
+

Node overview

+
+
+ +
+
+

+
+
+
+ +
+
+

Troubleshooting with kubectl

+

In Module 2, you used Kubectl command-line interface. You'll continue to use it in Module 3 to get information about deployed applications and their environments. The most common operations can be done with the following kubectl commands:

+
    +
  • kubectl get - list resources
  • +
  • kubectl describe - show detailed information about a resource
  • +
  • kubectl logs - print the logs from a container in a pod
  • +
  • kubectl exec - execute a command on a container in a pod
  • +
+ +

You can use these commands to see when applications were deployed, what their current status is, where they are running and what their configuration is.

+ +

Now that we know more about our cluster components and the command line, let’s explore our application.

+ +
+
+
+

A node is a worker machine in Kubernetes and may be a VM or physical machine, depending on the cluster. Multiple Pods can run on one Node.

+
+
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/expose-app.html b/docs/tutorials/getting-started/expose-app.html new file mode 100644 index 0000000000..593f34794e --- /dev/null +++ b/docs/tutorials/getting-started/expose-app.html @@ -0,0 +1,60 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+

Module overview

+
    +
  • Services
  • +
  • Learn about Kubernetes Labels
  • +
  • Exposing applications outside Kubernetes
  • +
+

+
+
+
+

What you need to know first

+

+ How to deploy apps on Kubernetes
+ How to troubleshoot applications with Kubectl +

+
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/expose-interactive.html b/docs/tutorials/getting-started/expose-interactive.html new file mode 100644 index 0000000000..d2d61e87c4 --- /dev/null +++ b/docs/tutorials/getting-started/expose-interactive.html @@ -0,0 +1,47 @@ +--- +--- + + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+
+
+
+ To interact with the Terminal, please use the desktop/tablet version +
+
+
+
+ + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/expose-intro.html b/docs/tutorials/getting-started/expose-intro.html new file mode 100644 index 0000000000..9f5bf74b83 --- /dev/null +++ b/docs/tutorials/getting-started/expose-intro.html @@ -0,0 +1,140 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+ +
+
+

While Pods do have their own unique IP across the cluster, those IP’s are not exposed outside Kubernetes. Taking into account that over time Pods may be terminated, deleted or replaced by other Pods, we need a way to let other Pods and applications automatically discover each other. Kubernetes addresses this by grouping Pods in Services. A Kubernetes Service is an abstraction layer which defines a logical set of Pods and enables external traffic exposure, load balancing and service discovery for those Pods.

+ +

This abstraction will allow us to expose Pods to traffic originating from outside the cluster. Services have their own unique cluster-private IP address and expose a port to receive traffic. If you choose to expose the service outside the cluster, the options are:

+
    +
  • LoadBalancer - provides a public IP address (what you would typically use when you run Kubernetes on GKE or AWS)
  • +
  • NodePort - exposes the Service on the same port on each Node of the cluster using NAT (available on all Kubernetes clusters, and in Minikube)
  • +
+
+
+
+

Summary:

+
    +
  • Exposing Pods to external traffic
  • +
  • Load balancing traffic across multiple Pods
  • +
  • Using labels
  • +
+
+
+

+ A Kubernetes Service is an abstraction layer which defines a logical set of Pods and enables external traffic exposure, load balancing and service discovery for those Pods. +

+
+
+
+
+ +
+
+

Services overview

+
+
+ +
+
+

+
+
+
+ +
+
+ +

A Service provides load balancing of traffic across the contained set of Pods. This is useful when a service is created to group all Pods from a specific Deployment (our application will make use of this in the next module, when we’ll have multiple instances running).

+ +

Services are also responsible for service-discovery within the cluster (covered in Module 6). This will for example allow a frontend service (like a web server) to receive traffic from a backend service (like a database) without worrying about Pods.

+ +

Services match a set of Pods using Label Selectors, a grouping primitive that allows logical operation on Labels.

+ +
+
+
+

You can create a Service when you start a Deployment by adding --expose as a parameter for the kubectl run command

+
+
+
+ +
+ +
+
+

Labels are key/value pairs that are attached to objects, such as Pods and you can think of them as hashtags from social media. They are used to organize related objects in a way meaningful to the users like:

+
    +
  • Production environment (production, test, dev)
  • +
  • Application version (beta, v1.3)
  • +
  • Type of service/server (frontend, backend, database)
  • +
+
+
+
+

Labels are key/value pairs that are attached to objects

+
+
+
+
+
+
+

Labels

+
+
+ +
+
+

+
+
+
+
+
+ +

Labels can be attached to objects at the creation time or later and can be modified at any time. + The kubectl run command sets some default Labels/Label Selectors on the new Pods/ Deployment. The link between Labels and Label Selectors defines the relationship between the Deployment and the Pods it creates.

+ +

Let’s expose now our application with the help of a Service, and apply some new Labels.

+
+
+
+ + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/index.html b/docs/tutorials/getting-started/index.html new file mode 100644 index 0000000000..9762cae49a --- /dev/null +++ b/docs/tutorials/getting-started/index.html @@ -0,0 +1,103 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+

Getting Started with Kubernetes

+

By the end of this tutorial you will understand what Kubernetes does. You will also learn how to deploy, scale, update and debug containerized applications on a Kubernetes cluster using an interactive online terminal.

+
+
+ +
+ +
+
+

Why Kubernetes?

+

Today users expect applications to be available 24/7, while developers expect to deploy new versions of those applications several times a day. The way we build software is moving in this direction, enabling applications to be released and updated in an easy and fast way without downtime. We also need to be able to scale application in line with the user demand and we expect them to make intelligent use of the available resources. Kubernetes is a platform designed to meet those requirements, using the experience accumulated by Google in this area, combined with best-of-breed ideas from the community.

+
+
+ +
+

Getting Started Modules

+
+ +
+
+ + +
+
+
+ +
+ +
+ +
+
+
+ + +
+
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/public/css/styles.css b/docs/tutorials/getting-started/public/css/styles.css new file mode 100644 index 0000000000..654544f1dd --- /dev/null +++ b/docs/tutorials/getting-started/public/css/styles.css @@ -0,0 +1,10274 @@ +@charset 'UTF-8'; +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 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; + + -ms-text-size-adjust: 100%; + -webkit-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 +{ + font-size: 2em; + + margin: .67em 0; +} + +mark +{ + color: #000; + background: #ff0; +} + +small +{ + font-size: 80%; +} + +sub, +sup +{ + font-size: 75%; + line-height: 0; + + position: relative; + + vertical-align: baseline; +} + +sup +{ + top: -.5em; +} + +sub +{ + bottom: -.25em; +} + +img +{ + border: 0; +} + +svg:not(:root) +{ + overflow: hidden; +} + +figure +{ + margin: 1em 40px; +} + +hr +{ + box-sizing: content-box; + height: 0; +} + +pre +{ + overflow: auto; +} + +code, +kbd, +pre, +samp +{ + font-family: monospace, monospace; + font-size: 1em; +} + +button, +input, +optgroup, +select, +textarea +{ + font: inherit; + + margin: 0; + + color: inherit; +} + +button +{ + overflow: visible; +} + +button, +select +{ + text-transform: none; +} + +button, +html input[type='button'], +input[type='reset'], +input[type='submit'] +{ + cursor: pointer; + + -webkit-appearance: button; +} + +button[disabled], +html input[disabled] +{ + cursor: default; +} + +button::-moz-focus-inner, +input::-moz-focus-inner +{ + padding: 0; + + border: 0; +} + +input +{ + line-height: normal; +} + +input[type='checkbox'], +input[type='radio'] +{ + 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'] +{ + box-sizing: content-box; + + -webkit-appearance: textfield; +} + +input[type='search']::-webkit-search-cancel-button, +input[type='search']::-webkit-search-decoration +{ + -webkit-appearance: none; +} + +fieldset +{ + margin: 0 2px; + padding: .35em .625em .75em; + + 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; + background: transparent !important; + box-shadow: none !important; + text-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; + } +} + +* +{ + box-sizing: border-box; +} + +*:before, +*:after +{ + box-sizing: border-box; +} + +html +{ + font-size: 10px; + + -webkit-tap-highlight-color: transparent; +} + +body +{ + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857; + + color: #333; + background-color: #fff; +} + +input, +button, +select, +textarea +{ + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +a +{ + text-decoration: none; + + color: #337ab7; +} +a:hover, +a:focus +{ + text-decoration: underline; + + color: #23527c; +} +a:focus +{ + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +figure +{ + margin: 0; +} + +img +{ + vertical-align: middle; +} + +.img-responsive +{ + display: block; + + max-width: 100%; + height: auto; +} + +.img-rounded +{ + border-radius: 6px; +} + +.img-thumbnail +{ + line-height: 1.42857; + + display: inline-block; + + max-width: 100%; + height: auto; + padding: 4px; + + -webkit-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; + + border: 1px solid #ddd; + border-radius: 4px; + background-color: #fff; +} + +.img-circle +{ + border-radius: 50%; +} + +hr +{ + margin-top: 20px; + margin-bottom: 20px; + + border: 0; + border-top: 1px solid #eee; +} + +.sr-only +{ + position: absolute; + + overflow: hidden; + clip: rect(0, 0, 0, 0); + + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + + border: 0; +} + +.sr-only-focusable:active, +.sr-only-focusable:focus +{ + position: static; + + overflow: visible; + clip: auto; + + width: auto; + height: auto; + margin: 0; +} + +[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.1; + + color: inherit; +} +h1 small, +h1 .small, +h2 small, +h2 .small, +h3 small, +h3 .small, +h4 small, +h4 .small, +h5 small, +h5 .small, +h6 small, +h6 .small, +.h1 small, +.h1 .small, +.h2 small, +.h2 .small, +.h3 small, +.h3 .small, +.h4 small, +.h4 .small, +.h5 small, +.h5 .small, +.h6 small, +.h6 .small +{ + font-weight: normal; + line-height: 1; + + color: #777; +} + +h1, +.h1, +h2, +.h2, +h3, +.h3 +{ + margin-top: 20px; + margin-bottom: 10px; +} +h1 small, +h1 .small, +.h1 small, +.h1 .small, +h2 small, +h2 .small, +.h2 small, +.h2 .small, +h3 small, +h3 .small, +.h3 small, +.h3 .small +{ + font-size: 65%; +} + +h4, +.h4, +h5, +.h5, +h6, +.h6 +{ + margin-top: 10px; + margin-bottom: 10px; +} +h4 small, +h4 .small, +.h4 small, +.h4 .small, +h5 small, +h5 .small, +.h5 small, +.h5 .small, +h6 small, +h6 .small, +.h6 small, +.h6 .small +{ + font-size: 75%; +} + +h1, +.h1 +{ + font-size: 36px; +} + +h2, +.h2 +{ + font-size: 30px; +} + +h3, +.h3 +{ + font-size: 24px; +} + +h4, +.h4 +{ + font-size: 18px; +} + +h5, +.h5 +{ + font-size: 14px; +} + +h6, +.h6 +{ + font-size: 12px; +} + +p +{ + margin: 0 0 10px; +} + +.lead +{ + font-size: 16px; + font-weight: 300; + line-height: 1.4; + + margin-bottom: 20px; +} +@media (min-width: 768px) +{ + .lead + { + font-size: 21px; + } +} + +small, +.small +{ + font-size: 85%; +} + +mark, +.mark +{ + padding: .2em; + + background-color: #fcf8e3; +} + +.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, +.initialism +{ + text-transform: uppercase; +} + +.text-capitalize +{ + text-transform: capitalize; +} + +.text-muted +{ + color: #777; +} + +.text-primary +{ + color: #337ab7; +} + +a.text-primary:hover, +a.text-primary:focus +{ + color: #286090; +} + +.text-success +{ + color: #3c763d; +} + +a.text-success:hover, +a.text-success:focus +{ + color: #2b542c; +} + +.text-info +{ + color: #31708f; +} + +a.text-info:hover, +a.text-info:focus +{ + color: #245269; +} + +.text-warning +{ + color: #8a6d3b; +} + +a.text-warning:hover, +a.text-warning:focus +{ + color: #66512c; +} + +.text-danger +{ + color: #a94442; +} + +a.text-danger:hover, +a.text-danger:focus +{ + color: #843534; +} + +.bg-primary +{ + color: #fff; +} + +.bg-primary +{ + background-color: #337ab7; +} + +a.bg-primary:hover, +a.bg-primary:focus +{ + background-color: #286090; +} + +.bg-success +{ + background-color: #dff0d8; +} + +a.bg-success:hover, +a.bg-success:focus +{ + background-color: #c1e2b3; +} + +.bg-info +{ + background-color: #d9edf7; +} + +a.bg-info:hover, +a.bg-info:focus +{ + background-color: #afd9ee; +} + +.bg-warning +{ + background-color: #fcf8e3; +} + +a.bg-warning:hover, +a.bg-warning:focus +{ + background-color: #f7ecb5; +} + +.bg-danger +{ + background-color: #f2dede; +} + +a.bg-danger:hover, +a.bg-danger:focus +{ + background-color: #e4b9b9; +} + +.page-header +{ + margin: 40px 0 20px; + padding-bottom: 9px; + + border-bottom: 1px solid #eee; +} + +ul, +ol +{ + margin-top: 0; + margin-bottom: 10px; +} +ul ul, +ul ol, +ol ul, +ol ol +{ + margin-bottom: 0; +} + +.list-unstyled +{ + padding-left: 0; + + list-style: none; +} + +.list-inline +{ + margin-left: -5px; + padding-left: 0; + + list-style: none; +} +.list-inline > li +{ + display: inline-block; + + padding-right: 5px; + padding-left: 5px; +} + +dl +{ + margin-top: 0; + margin-bottom: 20px; +} + +dt, +dd +{ + line-height: 1.42857; +} + +dt +{ + font-weight: bold; +} + +dd +{ + margin-left: 0; +} + +.dl-horizontal dd:before, +.dl-horizontal dd:after +{ + display: table; + + content: ' '; +} + +.dl-horizontal dd:after +{ + clear: both; +} + +@media (min-width: 768px) +{ + .dl-horizontal dt + { + float: left; + clear: left; + overflow: hidden; + + width: 160px; + + text-align: right; + white-space: nowrap; + text-overflow: ellipsis; + } + .dl-horizontal dd + { + margin-left: 180px; + } +} + +abbr[title], +abbr[data-original-title] +{ + cursor: help; + + border-bottom: 1px dotted #777; +} + +.initialism +{ + font-size: 90%; +} + +blockquote +{ + font-size: 17.5px; + + margin: 0 0 20px; + padding: 10px 20px; + + border-left: 5px solid #eee; +} +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child +{ + margin-bottom: 0; +} +blockquote footer, +blockquote small, +blockquote .small +{ + font-size: 80%; + line-height: 1.42857; + + display: block; + + color: #777; +} +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 #eee; + border-left: 0; +} +.blockquote-reverse footer:before, +.blockquote-reverse small:before, +.blockquote-reverse .small:before, +blockquote.pull-right footer:before, +blockquote.pull-right small:before, +blockquote.pull-right .small:before +{ + content: ''; +} +.blockquote-reverse footer:after, +.blockquote-reverse small:after, +.blockquote-reverse .small:after, +blockquote.pull-right footer:after, +blockquote.pull-right small:after, +blockquote.pull-right .small:after +{ + content: '\00A0 \2014'; +} + +address +{ + font-style: normal; + line-height: 1.42857; + + margin-bottom: 20px; +} + +code, +kbd, +pre, +samp +{ + font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; +} + +code +{ + font-size: 90%; + + padding: 2px 4px; + + color: #c7254e; + border-radius: 4px; + background-color: #f9f2f4; +} + +kbd +{ + font-size: 90%; + + padding: 2px 4px; + + color: #fff; + border-radius: 3px; + background-color: #333; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); +} +kbd kbd +{ + font-size: 100%; + font-weight: bold; + + padding: 0; + + box-shadow: none; +} + +pre +{ + font-size: 13px; + line-height: 1.42857; + + display: block; + + margin: 0 0 10px; + padding: 9.5px; + + word-wrap: break-word; + word-break: break-all; + + color: #333; + border: 1px solid #ccc; + border-radius: 4px; + background-color: #f5f5f5; +} +pre code +{ + font-size: inherit; + + padding: 0; + + white-space: pre-wrap; + + color: inherit; + border-radius: 0; + background-color: transparent; +} + +.pre-scrollable +{ + overflow-y: scroll; + + max-height: 340px; +} + +.container +{ + margin-right: auto; + margin-left: auto; + padding-right: 15px; + padding-left: 15px; +} +.container:before, +.container:after +{ + display: table; + + content: ' '; +} +.container:after +{ + clear: both; +} +@media (min-width: 768px) +{ + .container + { + width: 750px; + } +} +@media (min-width: 992px) +{ + .container + { + width: 970px; + } +} +@media (min-width: 1200px) +{ + .container + { + width: 1170px; + } +} + +.container-fluid +{ + margin-right: auto; + margin-left: auto; + padding-right: 15px; + padding-left: 15px; +} +.container-fluid:before, +.container-fluid:after +{ + display: table; + + content: ' '; +} +.container-fluid:after +{ + clear: both; +} + +.row +{ + margin-right: -15px; + margin-left: -15px; +} +.row:before, +.row:after +{ + display: table; + + content: ' '; +} +.row:after +{ + clear: both; +} + +.col-xs-1, +.col-sm-1, +.col-md-1, +.col-lg-1, +.col-xs-2, +.col-sm-2, +.col-md-2, +.col-lg-2, +.col-xs-3, +.col-sm-3, +.col-md-3, +.col-lg-3, +.col-xs-4, +.col-sm-4, +.col-md-4, +.col-lg-4, +.col-xs-5, +.col-sm-5, +.col-md-5, +.col-lg-5, +.col-xs-6, +.col-sm-6, +.col-md-6, +.col-lg-6, +.col-xs-7, +.col-sm-7, +.col-md-7, +.col-lg-7, +.col-xs-8, +.col-sm-8, +.col-md-8, +.col-lg-8, +.col-xs-9, +.col-sm-9, +.col-md-9, +.col-lg-9, +.col-xs-10, +.col-sm-10, +.col-md-10, +.col-lg-10, +.col-xs-11, +.col-sm-11, +.col-md-11, +.col-lg-11, +.col-xs-12, +.col-sm-12, +.col-md-12, +.col-lg-12 +{ + position: relative; + + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} + +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12 +{ + float: left; +} + +.col-xs-1 +{ + width: 8.33333%; +} + +.col-xs-2 +{ + width: 16.66667%; +} + +.col-xs-3 +{ + width: 25%; +} + +.col-xs-4 +{ + width: 33.33333%; +} + +.col-xs-5 +{ + width: 41.66667%; +} + +.col-xs-6 +{ + width: 50%; +} + +.col-xs-7 +{ + width: 58.33333%; +} + +.col-xs-8 +{ + width: 66.66667%; +} + +.col-xs-9 +{ + width: 75%; +} + +.col-xs-10 +{ + width: 83.33333%; +} + +.col-xs-11 +{ + width: 91.66667%; +} + +.col-xs-12 +{ + width: 100%; +} + +.col-xs-pull-0 +{ + right: auto; +} + +.col-xs-pull-1 +{ + right: 8.33333%; +} + +.col-xs-pull-2 +{ + right: 16.66667%; +} + +.col-xs-pull-3 +{ + right: 25%; +} + +.col-xs-pull-4 +{ + right: 33.33333%; +} + +.col-xs-pull-5 +{ + right: 41.66667%; +} + +.col-xs-pull-6 +{ + right: 50%; +} + +.col-xs-pull-7 +{ + right: 58.33333%; +} + +.col-xs-pull-8 +{ + right: 66.66667%; +} + +.col-xs-pull-9 +{ + right: 75%; +} + +.col-xs-pull-10 +{ + right: 83.33333%; +} + +.col-xs-pull-11 +{ + right: 91.66667%; +} + +.col-xs-pull-12 +{ + right: 100%; +} + +.col-xs-push-0 +{ + left: auto; +} + +.col-xs-push-1 +{ + left: 8.33333%; +} + +.col-xs-push-2 +{ + left: 16.66667%; +} + +.col-xs-push-3 +{ + left: 25%; +} + +.col-xs-push-4 +{ + left: 33.33333%; +} + +.col-xs-push-5 +{ + left: 41.66667%; +} + +.col-xs-push-6 +{ + left: 50%; +} + +.col-xs-push-7 +{ + left: 58.33333%; +} + +.col-xs-push-8 +{ + left: 66.66667%; +} + +.col-xs-push-9 +{ + left: 75%; +} + +.col-xs-push-10 +{ + left: 83.33333%; +} + +.col-xs-push-11 +{ + left: 91.66667%; +} + +.col-xs-push-12 +{ + left: 100%; +} + +.col-xs-offset-0 +{ + margin-left: 0; +} + +.col-xs-offset-1 +{ + margin-left: 8.33333%; +} + +.col-xs-offset-2 +{ + margin-left: 16.66667%; +} + +.col-xs-offset-3 +{ + margin-left: 25%; +} + +.col-xs-offset-4 +{ + margin-left: 33.33333%; +} + +.col-xs-offset-5 +{ + margin-left: 41.66667%; +} + +.col-xs-offset-6 +{ + margin-left: 50%; +} + +.col-xs-offset-7 +{ + margin-left: 58.33333%; +} + +.col-xs-offset-8 +{ + margin-left: 66.66667%; +} + +.col-xs-offset-9 +{ + margin-left: 75%; +} + +.col-xs-offset-10 +{ + margin-left: 83.33333%; +} + +.col-xs-offset-11 +{ + margin-left: 91.66667%; +} + +.col-xs-offset-12 +{ + margin-left: 100%; +} + +@media (min-width: 768px) +{ + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11, + .col-sm-12 + { + float: left; + } + .col-sm-1 + { + width: 8.33333%; + } + .col-sm-2 + { + width: 16.66667%; + } + .col-sm-3 + { + width: 25%; + } + .col-sm-4 + { + width: 33.33333%; + } + .col-sm-5 + { + width: 41.66667%; + } + .col-sm-6 + { + width: 50%; + } + .col-sm-7 + { + width: 58.33333%; + } + .col-sm-8 + { + width: 66.66667%; + } + .col-sm-9 + { + width: 75%; + } + .col-sm-10 + { + width: 83.33333%; + } + .col-sm-11 + { + width: 91.66667%; + } + .col-sm-12 + { + width: 100%; + } + .col-sm-pull-0 + { + right: auto; + } + .col-sm-pull-1 + { + right: 8.33333%; + } + .col-sm-pull-2 + { + right: 16.66667%; + } + .col-sm-pull-3 + { + right: 25%; + } + .col-sm-pull-4 + { + right: 33.33333%; + } + .col-sm-pull-5 + { + right: 41.66667%; + } + .col-sm-pull-6 + { + right: 50%; + } + .col-sm-pull-7 + { + right: 58.33333%; + } + .col-sm-pull-8 + { + right: 66.66667%; + } + .col-sm-pull-9 + { + right: 75%; + } + .col-sm-pull-10 + { + right: 83.33333%; + } + .col-sm-pull-11 + { + right: 91.66667%; + } + .col-sm-pull-12 + { + right: 100%; + } + .col-sm-push-0 + { + left: auto; + } + .col-sm-push-1 + { + left: 8.33333%; + } + .col-sm-push-2 + { + left: 16.66667%; + } + .col-sm-push-3 + { + left: 25%; + } + .col-sm-push-4 + { + left: 33.33333%; + } + .col-sm-push-5 + { + left: 41.66667%; + } + .col-sm-push-6 + { + left: 50%; + } + .col-sm-push-7 + { + left: 58.33333%; + } + .col-sm-push-8 + { + left: 66.66667%; + } + .col-sm-push-9 + { + left: 75%; + } + .col-sm-push-10 + { + left: 83.33333%; + } + .col-sm-push-11 + { + left: 91.66667%; + } + .col-sm-push-12 + { + left: 100%; + } + .col-sm-offset-0 + { + margin-left: 0; + } + .col-sm-offset-1 + { + margin-left: 8.33333%; + } + .col-sm-offset-2 + { + margin-left: 16.66667%; + } + .col-sm-offset-3 + { + margin-left: 25%; + } + .col-sm-offset-4 + { + margin-left: 33.33333%; + } + .col-sm-offset-5 + { + margin-left: 41.66667%; + } + .col-sm-offset-6 + { + margin-left: 50%; + } + .col-sm-offset-7 + { + margin-left: 58.33333%; + } + .col-sm-offset-8 + { + margin-left: 66.66667%; + } + .col-sm-offset-9 + { + margin-left: 75%; + } + .col-sm-offset-10 + { + margin-left: 83.33333%; + } + .col-sm-offset-11 + { + margin-left: 91.66667%; + } + .col-sm-offset-12 + { + margin-left: 100%; + } +} + +@media (min-width: 992px) +{ + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11, + .col-md-12 + { + float: left; + } + .col-md-1 + { + width: 8.33333%; + } + .col-md-2 + { + width: 16.66667%; + } + .col-md-3 + { + width: 25%; + } + .col-md-4 + { + width: 33.33333%; + } + .col-md-5 + { + width: 41.66667%; + } + .col-md-6 + { + width: 50%; + } + .col-md-7 + { + width: 58.33333%; + } + .col-md-8 + { + width: 66.66667%; + } + .col-md-9 + { + width: 75%; + } + .col-md-10 + { + width: 83.33333%; + } + .col-md-11 + { + width: 91.66667%; + } + .col-md-12 + { + width: 100%; + } + .col-md-pull-0 + { + right: auto; + } + .col-md-pull-1 + { + right: 8.33333%; + } + .col-md-pull-2 + { + right: 16.66667%; + } + .col-md-pull-3 + { + right: 25%; + } + .col-md-pull-4 + { + right: 33.33333%; + } + .col-md-pull-5 + { + right: 41.66667%; + } + .col-md-pull-6 + { + right: 50%; + } + .col-md-pull-7 + { + right: 58.33333%; + } + .col-md-pull-8 + { + right: 66.66667%; + } + .col-md-pull-9 + { + right: 75%; + } + .col-md-pull-10 + { + right: 83.33333%; + } + .col-md-pull-11 + { + right: 91.66667%; + } + .col-md-pull-12 + { + right: 100%; + } + .col-md-push-0 + { + left: auto; + } + .col-md-push-1 + { + left: 8.33333%; + } + .col-md-push-2 + { + left: 16.66667%; + } + .col-md-push-3 + { + left: 25%; + } + .col-md-push-4 + { + left: 33.33333%; + } + .col-md-push-5 + { + left: 41.66667%; + } + .col-md-push-6 + { + left: 50%; + } + .col-md-push-7 + { + left: 58.33333%; + } + .col-md-push-8 + { + left: 66.66667%; + } + .col-md-push-9 + { + left: 75%; + } + .col-md-push-10 + { + left: 83.33333%; + } + .col-md-push-11 + { + left: 91.66667%; + } + .col-md-push-12 + { + left: 100%; + } + .col-md-offset-0 + { + margin-left: 0; + } + .col-md-offset-1 + { + margin-left: 8.33333%; + } + .col-md-offset-2 + { + margin-left: 16.66667%; + } + .col-md-offset-3 + { + margin-left: 25%; + } + .col-md-offset-4 + { + margin-left: 33.33333%; + } + .col-md-offset-5 + { + margin-left: 41.66667%; + } + .col-md-offset-6 + { + margin-left: 50%; + } + .col-md-offset-7 + { + margin-left: 58.33333%; + } + .col-md-offset-8 + { + margin-left: 66.66667%; + } + .col-md-offset-9 + { + margin-left: 75%; + } + .col-md-offset-10 + { + margin-left: 83.33333%; + } + .col-md-offset-11 + { + margin-left: 91.66667%; + } + .col-md-offset-12 + { + margin-left: 100%; + } +} + +@media (min-width: 1200px) +{ + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11, + .col-lg-12 + { + float: left; + } + .col-lg-1 + { + width: 8.33333%; + } + .col-lg-2 + { + width: 16.66667%; + } + .col-lg-3 + { + width: 25%; + } + .col-lg-4 + { + width: 33.33333%; + } + .col-lg-5 + { + width: 41.66667%; + } + .col-lg-6 + { + width: 50%; + } + .col-lg-7 + { + width: 58.33333%; + } + .col-lg-8 + { + width: 66.66667%; + } + .col-lg-9 + { + width: 75%; + } + .col-lg-10 + { + width: 83.33333%; + } + .col-lg-11 + { + width: 91.66667%; + } + .col-lg-12 + { + width: 100%; + } + .col-lg-pull-0 + { + right: auto; + } + .col-lg-pull-1 + { + right: 8.33333%; + } + .col-lg-pull-2 + { + right: 16.66667%; + } + .col-lg-pull-3 + { + right: 25%; + } + .col-lg-pull-4 + { + right: 33.33333%; + } + .col-lg-pull-5 + { + right: 41.66667%; + } + .col-lg-pull-6 + { + right: 50%; + } + .col-lg-pull-7 + { + right: 58.33333%; + } + .col-lg-pull-8 + { + right: 66.66667%; + } + .col-lg-pull-9 + { + right: 75%; + } + .col-lg-pull-10 + { + right: 83.33333%; + } + .col-lg-pull-11 + { + right: 91.66667%; + } + .col-lg-pull-12 + { + right: 100%; + } + .col-lg-push-0 + { + left: auto; + } + .col-lg-push-1 + { + left: 8.33333%; + } + .col-lg-push-2 + { + left: 16.66667%; + } + .col-lg-push-3 + { + left: 25%; + } + .col-lg-push-4 + { + left: 33.33333%; + } + .col-lg-push-5 + { + left: 41.66667%; + } + .col-lg-push-6 + { + left: 50%; + } + .col-lg-push-7 + { + left: 58.33333%; + } + .col-lg-push-8 + { + left: 66.66667%; + } + .col-lg-push-9 + { + left: 75%; + } + .col-lg-push-10 + { + left: 83.33333%; + } + .col-lg-push-11 + { + left: 91.66667%; + } + .col-lg-push-12 + { + left: 100%; + } + .col-lg-offset-0 + { + margin-left: 0; + } + .col-lg-offset-1 + { + margin-left: 8.33333%; + } + .col-lg-offset-2 + { + margin-left: 16.66667%; + } + .col-lg-offset-3 + { + margin-left: 25%; + } + .col-lg-offset-4 + { + margin-left: 33.33333%; + } + .col-lg-offset-5 + { + margin-left: 41.66667%; + } + .col-lg-offset-6 + { + margin-left: 50%; + } + .col-lg-offset-7 + { + margin-left: 58.33333%; + } + .col-lg-offset-8 + { + margin-left: 66.66667%; + } + .col-lg-offset-9 + { + margin-left: 75%; + } + .col-lg-offset-10 + { + margin-left: 83.33333%; + } + .col-lg-offset-11 + { + margin-left: 91.66667%; + } + .col-lg-offset-12 + { + margin-left: 100%; + } +} + +table +{ + background-color: transparent; +} + +caption +{ + padding-top: 8px; + padding-bottom: 8px; + + text-align: left; + + color: #777; +} + +th +{ + text-align: left; +} + +.table +{ + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} +.table > thead > tr > th, +.table > thead > tr > td, +.table > tbody > tr > th, +.table > tbody > tr > td, +.table > tfoot > tr > th, +.table > tfoot > tr > td +{ + line-height: 1.42857; + + padding: 8px; + + vertical-align: top; + + border-top: 1px solid #ddd; +} +.table > thead > tr > th +{ + vertical-align: bottom; + + border-bottom: 2px solid #ddd; +} +.table > caption + thead > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > th, +.table > thead:first-child > tr:first-child > td +{ + border-top: 0; +} +.table > tbody + tbody +{ + border-top: 2px solid #ddd; +} +.table .table +{ + background-color: #fff; +} + +.table-condensed > thead > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > th, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > th, +.table-condensed > tfoot > tr > td +{ + padding: 5px; +} + +.table-bordered +{ + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > th, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > th, +.table-bordered > tfoot > tr > td +{ + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td +{ + border-bottom-width: 2px; +} + +.table-striped > tbody > tr:nth-of-type(odd) +{ + background-color: #f9f9f9; +} + +.table-hover > tbody > tr:hover +{ + background-color: #f5f5f5; +} + +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 > thead > tr > th.active, +.table > thead > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr > td.active, +.table > tbody > tr > th.active, +.table > tbody > tr.active > td, +.table > tbody > tr.active > th, +.table > tfoot > tr > td.active, +.table > tfoot > tr > th.active, +.table > tfoot > tr.active > td, +.table > tfoot > tr.active > th +{ + background-color: #f5f5f5; +} + +.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: #e8e8e8; +} + +.table > thead > tr > td.success, +.table > thead > tr > th.success, +.table > thead > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr > td.success, +.table > tbody > tr > th.success, +.table > tbody > tr.success > td, +.table > tbody > tr.success > th, +.table > tfoot > tr > td.success, +.table > tfoot > tr > th.success, +.table > tfoot > tr.success > td, +.table > tfoot > tr.success > th +{ + background-color: #dff0d8; +} + +.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: #d0e9c6; +} + +.table > thead > tr > td.info, +.table > thead > tr > th.info, +.table > thead > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr > td.info, +.table > tbody > tr > th.info, +.table > tbody > tr.info > td, +.table > tbody > tr.info > th, +.table > tfoot > tr > td.info, +.table > tfoot > tr > th.info, +.table > tfoot > tr.info > td, +.table > tfoot > tr.info > th +{ + background-color: #d9edf7; +} + +.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: #c4e3f3; +} + +.table > thead > tr > td.warning, +.table > thead > tr > th.warning, +.table > thead > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr > td.warning, +.table > tbody > tr > th.warning, +.table > tbody > tr.warning > td, +.table > tbody > tr.warning > th, +.table > tfoot > tr > td.warning, +.table > tfoot > tr > th.warning, +.table > tfoot > tr.warning > td, +.table > tfoot > tr.warning > th +{ + background-color: #fcf8e3; +} + +.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: #faf2cc; +} + +.table > thead > tr > td.danger, +.table > thead > tr > th.danger, +.table > thead > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr > td.danger, +.table > tbody > tr > th.danger, +.table > tbody > tr.danger > td, +.table > tbody > tr.danger > th, +.table > tfoot > tr > td.danger, +.table > tfoot > tr > th.danger, +.table > tfoot > tr.danger > td, +.table > tfoot > tr.danger > th +{ + background-color: #f2dede; +} + +.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: #ebcccc; +} + +.table-responsive +{ + overflow-x: auto; + + min-height: .01%; +} +@media screen and (max-width: 767px) +{ + .table-responsive + { + overflow-y: hidden; + + width: 100%; + margin-bottom: 15px; + + border: 1px solid #ddd; + + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .table-responsive > .table + { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > th, + .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 > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > th: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 > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > th: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 > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > td + { + border-bottom: 0; + } +} + +fieldset +{ + min-width: 0; + margin: 0; + padding: 0; + + border: 0; +} + +legend +{ + font-size: 21px; + line-height: inherit; + + display: block; + + width: 100%; + margin-bottom: 20px; + padding: 0; + + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +label +{ + font-weight: bold; + + display: inline-block; + + max-width: 100%; + margin-bottom: 5px; +} + +input[type='search'] +{ + box-sizing: border-box; +} + +input[type='radio'], +input[type='checkbox'] +{ + line-height: normal; + + margin: 4px 0 0; + margin-top: 1px \9; +} + +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: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +output +{ + font-size: 14px; + line-height: 1.42857; + + display: block; + + padding-top: 7px; + + color: #555; +} + +.form-control +{ + font-size: 14px; + line-height: 1.42857; + + display: block; + + width: 100%; + height: 34px; + padding: 6px 12px; + + -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + + color: #555; + border: 1px solid #ccc; + border-radius: 4px; + background-color: #fff; + background-image: none; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.form-control:focus +{ + border-color: #66afe9; + outline: 0; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); +} +.form-control::-moz-placeholder +{ + opacity: 1; + color: #999; +} +.form-control:-ms-input-placeholder +{ + color: #999; +} +.form-control::-webkit-input-placeholder +{ + color: #999; +} +.form-control::-ms-expand +{ + border: 0; + background-color: transparent; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control +{ + opacity: 1; + background-color: #eee; +} +.form-control[disabled], +fieldset[disabled] .form-control +{ + cursor: not-allowed; +} + +textarea.form-control +{ + height: auto; +} + +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: 34px; + } + input[type='date'].input-sm, + .input-group-sm > input[type='date'].form-control, + .input-group-sm > input[type='date'].input-group-addon, + .input-group-sm > .input-group-btn > input[type='date'].btn, + .input-group-sm input[type='date'], + input[type='time'].input-sm, + .input-group-sm > input[type='time'].form-control, + .input-group-sm > input[type='time'].input-group-addon, + .input-group-sm > .input-group-btn > input[type='time'].btn, + .input-group-sm + input[type='time'], + input[type='datetime-local'].input-sm, + .input-group-sm > input[type='datetime-local'].form-control, + .input-group-sm > input[type='datetime-local'].input-group-addon, + .input-group-sm > .input-group-btn > input[type='datetime-local'].btn, + .input-group-sm + input[type='datetime-local'], + input[type='month'].input-sm, + .input-group-sm > input[type='month'].form-control, + .input-group-sm > input[type='month'].input-group-addon, + .input-group-sm > .input-group-btn > input[type='month'].btn, + .input-group-sm + input[type='month'] + { + line-height: 30px; + } + input[type='date'].input-lg, + .input-group-lg > input[type='date'].form-control, + .input-group-lg > input[type='date'].input-group-addon, + .input-group-lg > .input-group-btn > input[type='date'].btn, + .input-group-lg input[type='date'], + input[type='time'].input-lg, + .input-group-lg > input[type='time'].form-control, + .input-group-lg > input[type='time'].input-group-addon, + .input-group-lg > .input-group-btn > input[type='time'].btn, + .input-group-lg + input[type='time'], + input[type='datetime-local'].input-lg, + .input-group-lg > input[type='datetime-local'].form-control, + .input-group-lg > input[type='datetime-local'].input-group-addon, + .input-group-lg > .input-group-btn > input[type='datetime-local'].btn, + .input-group-lg + input[type='datetime-local'], + input[type='month'].input-lg, + .input-group-lg > input[type='month'].form-control, + .input-group-lg > input[type='month'].input-group-addon, + .input-group-lg > .input-group-btn > input[type='month'].btn, + .input-group-lg + input[type='month'] + { + line-height: 46px; + } +} + +.form-group +{ + margin-bottom: 15px; +} + +.radio, +.checkbox +{ + position: relative; + + display: block; + + margin-top: 10px; + margin-bottom: 10px; +} +.radio label, +.checkbox label +{ + font-weight: normal; + + min-height: 20px; + margin-bottom: 0; + padding-left: 20px; + + 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 +{ + font-weight: normal; + + position: relative; + + display: inline-block; + + margin-bottom: 0; + padding-left: 20px; + + cursor: pointer; + vertical-align: middle; +} + +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline +{ + margin-top: 0; + margin-left: 10px; +} + +input[type='radio'][disabled], +input[type='radio'].disabled, +fieldset[disabled] input[type='radio'], +input[type='checkbox'][disabled], +input[type='checkbox'].disabled, +fieldset[disabled] +input[type='checkbox'] +{ + cursor: not-allowed; +} + +.radio-inline.disabled, +fieldset[disabled] .radio-inline, +.checkbox-inline.disabled, +fieldset[disabled] +.checkbox-inline +{ + cursor: not-allowed; +} + +.radio.disabled label, +fieldset[disabled] .radio label, +.checkbox.disabled label, +fieldset[disabled] +.checkbox label +{ + cursor: not-allowed; +} + +.form-control-static +{ + min-height: 34px; + margin-bottom: 0; + padding-top: 7px; + padding-bottom: 7px; +} +.form-control-static.input-lg, +.input-group-lg > .form-control-static.form-control, +.input-group-lg > .form-control-static.input-group-addon, +.input-group-lg > .input-group-btn > .form-control-static.btn, +.form-control-static.input-sm, +.input-group-sm > .form-control-static.form-control, +.input-group-sm > .form-control-static.input-group-addon, +.input-group-sm > .input-group-btn > .form-control-static.btn +{ + padding-right: 0; + padding-left: 0; +} + +.input-sm, +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn +{ + font-size: 12px; + line-height: 1.5; + + height: 30px; + padding: 5px 10px; + + border-radius: 3px; +} + +select.input-sm, +.input-group-sm > select.form-control, +.input-group-sm > select.input-group-addon, +.input-group-sm > .input-group-btn > select.btn +{ + line-height: 30px; + + height: 30px; +} + +textarea.input-sm, +.input-group-sm > textarea.form-control, +.input-group-sm > textarea.input-group-addon, +.input-group-sm > .input-group-btn > textarea.btn, +select[multiple].input-sm, +.input-group-sm > select[multiple].form-control, +.input-group-sm > select[multiple].input-group-addon, +.input-group-sm > .input-group-btn > select[multiple].btn +{ + height: auto; +} + +.form-group-sm .form-control +{ + font-size: 12px; + line-height: 1.5; + + height: 30px; + padding: 5px 10px; + + border-radius: 3px; +} + +.form-group-sm select.form-control +{ + line-height: 30px; + + height: 30px; +} + +.form-group-sm textarea.form-control, +.form-group-sm select[multiple].form-control +{ + height: auto; +} + +.form-group-sm .form-control-static +{ + font-size: 12px; + line-height: 1.5; + + height: 30px; + min-height: 32px; + padding: 6px 10px; +} + +.input-lg, +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn +{ + font-size: 18px; + line-height: 1.33333; + + height: 46px; + padding: 10px 16px; + + border-radius: 6px; +} + +select.input-lg, +.input-group-lg > select.form-control, +.input-group-lg > select.input-group-addon, +.input-group-lg > .input-group-btn > select.btn +{ + line-height: 46px; + + height: 46px; +} + +textarea.input-lg, +.input-group-lg > textarea.form-control, +.input-group-lg > textarea.input-group-addon, +.input-group-lg > .input-group-btn > textarea.btn, +select[multiple].input-lg, +.input-group-lg > select[multiple].form-control, +.input-group-lg > select[multiple].input-group-addon, +.input-group-lg > .input-group-btn > select[multiple].btn +{ + height: auto; +} + +.form-group-lg .form-control +{ + font-size: 18px; + line-height: 1.33333; + + height: 46px; + padding: 10px 16px; + + border-radius: 6px; +} + +.form-group-lg select.form-control +{ + line-height: 46px; + + height: 46px; +} + +.form-group-lg textarea.form-control, +.form-group-lg select[multiple].form-control +{ + height: auto; +} + +.form-group-lg .form-control-static +{ + font-size: 18px; + line-height: 1.33333; + + height: 46px; + min-height: 38px; + padding: 11px 16px; +} + +.has-feedback +{ + position: relative; +} +.has-feedback .form-control +{ + padding-right: 42.5px; +} + +.form-control-feedback +{ + line-height: 34px; + + position: absolute; + z-index: 2; + top: 0; + right: 0; + + display: block; + + width: 34px; + height: 34px; + + text-align: center; + pointer-events: none; +} + +.input-lg + .form-control-feedback, +.input-group-lg > .form-control + .form-control-feedback, +.input-group-lg > .input-group-addon + .form-control-feedback, +.input-group-lg > .input-group-btn > .btn + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.form-group-lg .form-control + .form-control-feedback +{ + line-height: 46px; + + width: 46px; + height: 46px; +} + +.input-sm + .form-control-feedback, +.input-group-sm > .form-control + .form-control-feedback, +.input-group-sm > .input-group-addon + .form-control-feedback, +.input-group-sm > .input-group-btn > .btn + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback +{ + line-height: 30px; + + width: 30px; + height: 30px; +} + +.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: #3c763d; +} + +.has-success .form-control +{ + border-color: #3c763d; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-success .form-control:focus +{ + border-color: #2b542c; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; +} + +.has-success .input-group-addon +{ + color: #3c763d; + border-color: #3c763d; + background-color: #dff0d8; +} + +.has-success .form-control-feedback +{ + color: #3c763d; +} + +.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: #8a6d3b; +} + +.has-warning .form-control +{ + border-color: #8a6d3b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-warning .form-control:focus +{ + border-color: #66512c; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; +} + +.has-warning .input-group-addon +{ + color: #8a6d3b; + border-color: #8a6d3b; + background-color: #fcf8e3; +} + +.has-warning .form-control-feedback +{ + color: #8a6d3b; +} + +.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: #a94442; +} + +.has-error .form-control +{ + border-color: #a94442; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-error .form-control:focus +{ + border-color: #843534; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; +} + +.has-error .input-group-addon +{ + color: #a94442; + border-color: #a94442; + background-color: #f2dede; +} + +.has-error .form-control-feedback +{ + color: #a94442; +} + +.has-feedback label ~ .form-control-feedback +{ + top: 25px; +} + +.has-feedback label.sr-only ~ .form-control-feedback +{ + top: 0; +} + +.help-block +{ + display: block; + + margin-top: 5px; + margin-bottom: 10px; + + color: #737373; +} + +@media (min-width: 768px) +{ + .form-inline .form-group + { + display: inline-block; + + margin-bottom: 0; + + vertical-align: middle; + } + .form-inline .form-control + { + display: inline-block; + + 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 +{ + margin-top: 0; + margin-bottom: 0; + padding-top: 7px; +} + +.form-horizontal .radio, +.form-horizontal .checkbox +{ + min-height: 27px; +} + +.form-horizontal .form-group +{ + margin-right: -15px; + margin-left: -15px; +} +.form-horizontal .form-group:before, +.form-horizontal .form-group:after +{ + display: table; + + content: ' '; +} +.form-horizontal .form-group:after +{ + clear: both; +} + +@media (min-width: 768px) +{ + .form-horizontal .control-label + { + margin-bottom: 0; + padding-top: 7px; + + text-align: right; + } +} + +.form-horizontal .has-feedback .form-control-feedback +{ + right: 15px; +} + +@media (min-width: 768px) +{ + .form-horizontal .form-group-lg .control-label + { + font-size: 18px; + + padding-top: 11px; + } +} + +@media (min-width: 768px) +{ + .form-horizontal .form-group-sm .control-label + { + font-size: 12px; + + padding-top: 6px; + } +} + +.btn +{ + font-size: 14px; + font-weight: normal; + line-height: 1.42857; + + display: inline-block; + + margin-bottom: 0; + padding: 6px 12px; + + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + text-align: center; + vertical-align: middle; + white-space: nowrap; + + border: 1px solid transparent; + border-radius: 4px; + background-image: none; + + -ms-touch-action: manipulation; + touch-action: manipulation; +} +.btn:focus, +.btn.focus, +.btn:active:focus, +.btn:active.focus, +.btn.active:focus, +.btn.active.focus +{ + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus, +.btn.focus +{ + text-decoration: none; + + color: #333; +} +.btn:active, +.btn.active +{ + outline: 0; + background-image: none; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn +{ + cursor: not-allowed; + + opacity: .65; + box-shadow: none; + + filter: alpha(opacity=65); +} + +a.btn.disabled, +fieldset[disabled] a.btn +{ + pointer-events: none; +} + +.btn-default +{ + color: #333; + border-color: #ccc; + background-color: #fff; +} +.btn-default:focus, +.btn-default.focus +{ + color: #333; + border-color: #8c8c8c; + background-color: #e6e6e6; +} +.btn-default:hover +{ + color: #333; + border-color: #adadad; + background-color: #e6e6e6; +} +.btn-default:active, +.btn-default.active, +.open > .btn-default.dropdown-toggle +{ + color: #333; + border-color: #adadad; + background-color: #e6e6e6; +} +.btn-default:active:hover, +.btn-default:active:focus, +.btn-default:active.focus, +.btn-default.active:hover, +.btn-default.active:focus, +.btn-default.active.focus, +.open > .btn-default.dropdown-toggle:hover, +.open > .btn-default.dropdown-toggle:focus, +.open > .btn-default.dropdown-toggle.focus +{ + color: #333; + border-color: #8c8c8c; + background-color: #d4d4d4; +} +.btn-default:active, +.btn-default.active, +.open > .btn-default.dropdown-toggle +{ + background-image: none; +} +.btn-default.disabled:hover, +.btn-default.disabled:focus, +.btn-default.disabled.focus, +.btn-default[disabled]:hover, +.btn-default[disabled]:focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default:hover, +fieldset[disabled] .btn-default:focus, +fieldset[disabled] .btn-default.focus +{ + border-color: #ccc; + background-color: #fff; +} +.btn-default .badge +{ + color: #fff; + background-color: #333; +} + +.btn-primary +{ + color: #fff; + border-color: #2e6da4; + background-color: #337ab7; +} +.btn-primary:focus, +.btn-primary.focus +{ + color: #fff; + border-color: #122b40; + background-color: #286090; +} +.btn-primary:hover +{ + color: #fff; + border-color: #204d74; + background-color: #286090; +} +.btn-primary:active, +.btn-primary.active, +.open > .btn-primary.dropdown-toggle +{ + color: #fff; + border-color: #204d74; + background-color: #286090; +} +.btn-primary:active:hover, +.btn-primary:active:focus, +.btn-primary:active.focus, +.btn-primary.active:hover, +.btn-primary.active:focus, +.btn-primary.active.focus, +.open > .btn-primary.dropdown-toggle:hover, +.open > .btn-primary.dropdown-toggle:focus, +.open > .btn-primary.dropdown-toggle.focus +{ + color: #fff; + border-color: #122b40; + background-color: #204d74; +} +.btn-primary:active, +.btn-primary.active, +.open > .btn-primary.dropdown-toggle +{ + background-image: none; +} +.btn-primary.disabled:hover, +.btn-primary.disabled:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled]:hover, +.btn-primary[disabled]:focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary:hover, +fieldset[disabled] .btn-primary:focus, +fieldset[disabled] .btn-primary.focus +{ + border-color: #2e6da4; + background-color: #337ab7; +} +.btn-primary .badge +{ + color: #337ab7; + background-color: #fff; +} + +.btn-success +{ + color: #fff; + border-color: #4cae4c; + background-color: #5cb85c; +} +.btn-success:focus, +.btn-success.focus +{ + color: #fff; + border-color: #255625; + background-color: #449d44; +} +.btn-success:hover +{ + color: #fff; + border-color: #398439; + background-color: #449d44; +} +.btn-success:active, +.btn-success.active, +.open > .btn-success.dropdown-toggle +{ + color: #fff; + border-color: #398439; + background-color: #449d44; +} +.btn-success:active:hover, +.btn-success:active:focus, +.btn-success:active.focus, +.btn-success.active:hover, +.btn-success.active:focus, +.btn-success.active.focus, +.open > .btn-success.dropdown-toggle:hover, +.open > .btn-success.dropdown-toggle:focus, +.open > .btn-success.dropdown-toggle.focus +{ + color: #fff; + border-color: #255625; + background-color: #398439; +} +.btn-success:active, +.btn-success.active, +.open > .btn-success.dropdown-toggle +{ + background-image: none; +} +.btn-success.disabled:hover, +.btn-success.disabled:focus, +.btn-success.disabled.focus, +.btn-success[disabled]:hover, +.btn-success[disabled]:focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success:hover, +fieldset[disabled] .btn-success:focus, +fieldset[disabled] .btn-success.focus +{ + border-color: #4cae4c; + background-color: #5cb85c; +} +.btn-success .badge +{ + color: #5cb85c; + background-color: #fff; +} + +.btn-info +{ + color: #fff; + border-color: #46b8da; + background-color: #5bc0de; +} +.btn-info:focus, +.btn-info.focus +{ + color: #fff; + border-color: #1b6d85; + background-color: #31b0d5; +} +.btn-info:hover +{ + color: #fff; + border-color: #269abc; + background-color: #31b0d5; +} +.btn-info:active, +.btn-info.active, +.open > .btn-info.dropdown-toggle +{ + color: #fff; + border-color: #269abc; + background-color: #31b0d5; +} +.btn-info:active:hover, +.btn-info:active:focus, +.btn-info:active.focus, +.btn-info.active:hover, +.btn-info.active:focus, +.btn-info.active.focus, +.open > .btn-info.dropdown-toggle:hover, +.open > .btn-info.dropdown-toggle:focus, +.open > .btn-info.dropdown-toggle.focus +{ + color: #fff; + border-color: #1b6d85; + background-color: #269abc; +} +.btn-info:active, +.btn-info.active, +.open > .btn-info.dropdown-toggle +{ + background-image: none; +} +.btn-info.disabled:hover, +.btn-info.disabled:focus, +.btn-info.disabled.focus, +.btn-info[disabled]:hover, +.btn-info[disabled]:focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info:hover, +fieldset[disabled] .btn-info:focus, +fieldset[disabled] .btn-info.focus +{ + border-color: #46b8da; + background-color: #5bc0de; +} +.btn-info .badge +{ + color: #5bc0de; + background-color: #fff; +} + +.btn-warning +{ + color: #fff; + border-color: #eea236; + background-color: #f0ad4e; +} +.btn-warning:focus, +.btn-warning.focus +{ + color: #fff; + border-color: #985f0d; + background-color: #ec971f; +} +.btn-warning:hover +{ + color: #fff; + border-color: #d58512; + background-color: #ec971f; +} +.btn-warning:active, +.btn-warning.active, +.open > .btn-warning.dropdown-toggle +{ + color: #fff; + border-color: #d58512; + background-color: #ec971f; +} +.btn-warning:active:hover, +.btn-warning:active:focus, +.btn-warning:active.focus, +.btn-warning.active:hover, +.btn-warning.active:focus, +.btn-warning.active.focus, +.open > .btn-warning.dropdown-toggle:hover, +.open > .btn-warning.dropdown-toggle:focus, +.open > .btn-warning.dropdown-toggle.focus +{ + color: #fff; + border-color: #985f0d; + background-color: #d58512; +} +.btn-warning:active, +.btn-warning.active, +.open > .btn-warning.dropdown-toggle +{ + background-image: none; +} +.btn-warning.disabled:hover, +.btn-warning.disabled:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled]:hover, +.btn-warning[disabled]:focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning:hover, +fieldset[disabled] .btn-warning:focus, +fieldset[disabled] .btn-warning.focus +{ + border-color: #eea236; + background-color: #f0ad4e; +} +.btn-warning .badge +{ + color: #f0ad4e; + background-color: #fff; +} + +.btn-danger +{ + color: #fff; + border-color: #d43f3a; + background-color: #d9534f; +} +.btn-danger:focus, +.btn-danger.focus +{ + color: #fff; + border-color: #761c19; + background-color: #c9302c; +} +.btn-danger:hover +{ + color: #fff; + border-color: #ac2925; + background-color: #c9302c; +} +.btn-danger:active, +.btn-danger.active, +.open > .btn-danger.dropdown-toggle +{ + color: #fff; + border-color: #ac2925; + background-color: #c9302c; +} +.btn-danger:active:hover, +.btn-danger:active:focus, +.btn-danger:active.focus, +.btn-danger.active:hover, +.btn-danger.active:focus, +.btn-danger.active.focus, +.open > .btn-danger.dropdown-toggle:hover, +.open > .btn-danger.dropdown-toggle:focus, +.open > .btn-danger.dropdown-toggle.focus +{ + color: #fff; + border-color: #761c19; + background-color: #ac2925; +} +.btn-danger:active, +.btn-danger.active, +.open > .btn-danger.dropdown-toggle +{ + background-image: none; +} +.btn-danger.disabled:hover, +.btn-danger.disabled:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled]:hover, +.btn-danger[disabled]:focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger:hover, +fieldset[disabled] .btn-danger:focus, +fieldset[disabled] .btn-danger.focus +{ + border-color: #d43f3a; + background-color: #d9534f; +} +.btn-danger .badge +{ + color: #d9534f; + background-color: #fff; +} + +.btn-link +{ + font-weight: normal; + + color: #337ab7; + border-radius: 0; +} +.btn-link, +.btn-link:active, +.btn-link.active, +.btn-link[disabled], +fieldset[disabled] .btn-link +{ + background-color: transparent; + box-shadow: none; +} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active +{ + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus +{ + text-decoration: underline; + + color: #23527c; + background-color: transparent; +} +.btn-link[disabled]:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:hover, +fieldset[disabled] .btn-link:focus +{ + text-decoration: none; + + color: #777; +} + +.btn-lg, +.btn-group-lg > .btn +{ + font-size: 18px; + line-height: 1.33333; + + padding: 10px 16px; + + border-radius: 6px; +} + +.btn-sm, +.btn-group-sm > .btn +{ + font-size: 12px; + line-height: 1.5; + + padding: 5px 10px; + + border-radius: 3px; +} + +.btn-xs, +.btn-group-xs > .btn +{ + font-size: 12px; + line-height: 1.5; + + padding: 1px 5px; + + border-radius: 3px; +} + +.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 +{ + -webkit-transition: opacity .15s linear; + transition: opacity .15s linear; + + opacity: 0; +} +.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; + + overflow: hidden; + + height: 0; + + -webkit-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: .35s; + transition-duration: .35s; + -webkit-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 +{ + font-size: 14px; + + position: absolute; + z-index: 1000; + top: 100%; + left: 0; + + display: none; + float: left; + + min-width: 160px; + margin: 2px 0 0; + padding: 5px 0; + + list-style: none; + + text-align: left; + + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: 4px; + background-color: #fff; + background-clip: padding-box; + box-shadow: 0 6px 12px rgba(0, 0, 0, .175); +} +.dropdown-menu.pull-right +{ + right: 0; + left: auto; +} +.dropdown-menu .divider +{ + overflow: hidden; + + height: 1px; + margin: 9px 0; + + background-color: #e5e5e5; +} +.dropdown-menu > li > a +{ + font-weight: normal; + line-height: 1.42857; + + display: block; + clear: both; + + padding: 3px 20px; + + white-space: nowrap; + + color: #333; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus +{ + text-decoration: none; + + color: #262626; + background-color: #f5f5f5; +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus +{ + text-decoration: none; + + color: #fff; + outline: 0; + background-color: #337ab7; +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus +{ + color: #777; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus +{ + cursor: not-allowed; + text-decoration: none; + + 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 +{ + font-size: 12px; + line-height: 1.42857; + + display: block; + + padding: 3px 20px; + + white-space: nowrap; + + color: #777; +} + +.dropdown-backdrop +{ + position: fixed; + z-index: 990; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +.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 > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .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:before, +.btn-toolbar:after +{ + display: table; + + content: ' '; +} +.btn-toolbar:after +{ + clear: both; +} +.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, +.btn-group-lg.btn-group > .btn + .dropdown-toggle +{ + padding-right: 12px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle +{ + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn-group.open .dropdown-toggle.btn-link +{ + box-shadow: none; +} + +.btn .caret +{ + margin-left: 0; +} + +.btn-lg .caret, +.btn-group-lg > .btn .caret +{ + border-width: 5px 5px 0; + border-bottom-width: 0; +} + +.dropup .btn-lg .caret, +.dropup .btn-group-lg > .btn .caret +{ + border-width: 0 5px 5px; +} + +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn +{ + display: block; + float: none; + + width: 100%; + max-width: 100%; +} + +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after +{ + display: table; + + content: ' '; +} + +.btn-group-vertical > .btn-group:after +{ + clear: both; +} + +.btn-group-vertical > .btn-group > .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: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:last-child:not(:first-child) +{ + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +.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 input[type='checkbox'], +[data-toggle='buttons'] > .btn-group > .btn input[type='radio'], +[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-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%; + + vertical-align: middle; + white-space: nowrap; +} + +.input-group-addon +{ + font-size: 14px; + font-weight: normal; + line-height: 1; + + padding: 6px 12px; + + text-align: center; + + color: #555; + border: 1px solid #ccc; + border-radius: 4px; + background-color: #eee; +} +.input-group-addon.input-sm, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .input-group-addon.btn +{ + font-size: 12px; + + padding: 5px 10px; + + border-radius: 3px; +} +.input-group-addon.input-lg, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .input-group-addon.btn +{ + font-size: 18px; + + padding: 10px 16px; + + border-radius: 6px; +} +.input-group-addon input[type='radio'], +.input-group-addon input[type='checkbox'] +{ + margin-top: 0; +} + +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .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 +{ + font-size: 0; + + position: relative; + + 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 +{ + margin-bottom: 0; + padding-left: 0; + + list-style: none; +} +.nav:before, +.nav:after +{ + display: table; + + content: ' '; +} +.nav:after +{ + clear: both; +} +.nav > li +{ + position: relative; + + display: block; +} +.nav > li > a +{ + position: relative; + + display: block; + + padding: 10px 15px; +} +.nav > li > a:hover, +.nav > li > a:focus +{ + text-decoration: none; + + background-color: #eee; +} +.nav > li.disabled > a +{ + color: #777; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus +{ + cursor: not-allowed; + text-decoration: none; + + color: #777; + background-color: transparent; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus +{ + border-color: #337ab7; + background-color: #eee; +} +.nav .nav-divider +{ + overflow: hidden; + + height: 1px; + margin: 9px 0; + + background-color: #e5e5e5; +} +.nav > li > a > img +{ + max-width: none; +} + +.nav-tabs +{ + border-bottom: 1px solid #ddd; +} +.nav-tabs > li +{ + float: left; + + margin-bottom: -1px; +} +.nav-tabs > li > a +{ + line-height: 1.42857; + + margin-right: 2px; + + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover +{ + border-color: #eee #eee #ddd; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus +{ + cursor: default; + + color: #555; + border: 1px solid #ddd; + border-bottom-color: transparent; + background-color: #fff; +} + +.nav-pills > li +{ + float: left; +} +.nav-pills > li > a +{ + border-radius: 4px; +} +.nav-pills > li + li +{ + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus +{ + color: #fff; + background-color: #337ab7; +} + +.nav-stacked > li +{ + float: none; +} +.nav-stacked > li + li +{ + margin-top: 2px; + margin-left: 0; +} + +.nav-justified, +.nav-tabs.nav-justified +{ + width: 100%; +} +.nav-justified > li, +.nav-tabs.nav-justified > li +{ + float: none; +} +.nav-justified > li > a, +.nav-tabs.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, + .nav-tabs.nav-justified > li + { + display: table-cell; + + width: 1%; + } + .nav-justified > li > a, + .nav-tabs.nav-justified > li > a + { + margin-bottom: 0; + } +} + +.nav-tabs-justified, +.nav-tabs.nav-justified +{ + border-bottom: 0; +} +.nav-tabs-justified > li > a, +.nav-tabs.nav-justified > li > a +{ + margin-right: 0; + + border-radius: 4px; +} +.nav-tabs-justified > .active > a, +.nav-tabs.nav-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus, +.nav-tabs.nav-justified > .active > a:focus +{ + border: 1px solid #ddd; +} +@media (min-width: 768px) +{ + .nav-tabs-justified > li > a, + .nav-tabs.nav-justified > li > a + { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs.nav-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus, + .nav-tabs.nav-justified > .active > a:focus + { + border-bottom-color: #fff; + } +} + +.tab-content > .tab-pane +{ + display: none; +} + +.tab-content > .active +{ + display: block; +} + +.nav-tabs .dropdown-menu +{ + margin-top: -1px; + + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.navbar +{ + position: relative; + + min-height: 50px; + margin-bottom: 20px; + + border: 1px solid transparent; +} +.navbar:before, +.navbar:after +{ + display: table; + + content: ' '; +} +.navbar:after +{ + clear: both; +} +@media (min-width: 768px) +{ + .navbar + { + border-radius: 4px; + } +} + +.navbar-header:before, +.navbar-header:after +{ + display: table; + + content: ' '; +} + +.navbar-header:after +{ + clear: both; +} + +@media (min-width: 768px) +{ + .navbar-header + { + float: left; + } +} + +.navbar-collapse +{ + overflow-x: visible; + + padding-right: 15px; + padding-left: 15px; + + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); + + -webkit-overflow-scrolling: touch; +} +.navbar-collapse:before, +.navbar-collapse:after +{ + display: table; + + content: ' '; +} +.navbar-collapse:after +{ + clear: both; +} +.navbar-collapse.in +{ + overflow-y: auto; +} +@media (min-width: 768px) +{ + .navbar-collapse + { + width: auto; + + border-top: 0; + box-shadow: none; + } + .navbar-collapse.collapse + { + display: block !important; + overflow: visible !important; + + height: auto !important; + padding-bottom: 0; + } + .navbar-collapse.in + { + overflow-y: visible; + } + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse + { + padding-right: 0; + padding-left: 0; + } +} + +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse +{ + max-height: 340px; +} +@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 > .navbar-collapse, +.container-fluid > .navbar-header, +.container-fluid > .navbar-collapse +{ + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) +{ + .container > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-header, + .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; + z-index: 1030; + right: 0; + left: 0; +} +@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 +{ + font-size: 18px; + line-height: 20px; + + float: left; + + height: 50px; + padding: 15px 15px; +} +.navbar-brand:hover, +.navbar-brand:focus +{ + text-decoration: none; +} +.navbar-brand > img +{ + display: block; +} +@media (min-width: 768px) +{ + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand + { + margin-left: -15px; + } +} + +.navbar-toggle +{ + position: relative; + + float: right; + + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + padding: 9px 10px; + + border: 1px solid transparent; + border-radius: 4px; + background-color: transparent; + background-image: none; +} +.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: 7.5px -15px; +} +.navbar-nav > li > a +{ + line-height: 20px; + + padding-top: 10px; + padding-bottom: 10px; +} +@media (max-width: 767px) +{ + .navbar-nav .open .dropdown-menu + { + position: static; + + float: none; + + width: auto; + margin-top: 0; + + border: 0; + background-color: transparent; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header + { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a + { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus + { + background-image: none; + } +} +@media (min-width: 768px) +{ + .navbar-nav + { + float: left; + + margin: 0; + } + .navbar-nav > li + { + float: left; + } + .navbar-nav > li > a + { + padding-top: 15px; + padding-bottom: 15px; + } +} + +.navbar-form +{ + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + padding: 10px 15px; + + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); +} +@media (min-width: 768px) +{ + .navbar-form .form-group + { + display: inline-block; + + margin-bottom: 0; + + vertical-align: middle; + } + .navbar-form .form-control + { + display: inline-block; + + 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; + margin-right: 0; + margin-left: 0; + padding-top: 0; + padding-bottom: 0; + + border: 0; + 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: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.navbar-btn +{ + margin-top: 8px; + margin-bottom: 8px; +} +.navbar-btn.btn-sm, +.btn-group-sm > .navbar-btn.btn +{ + margin-top: 10px; + margin-bottom: 10px; +} +.navbar-btn.btn-xs, +.btn-group-xs > .navbar-btn.btn +{ + margin-top: 14px; + margin-bottom: 14px; +} + +.navbar-text +{ + margin-top: 15px; + margin-bottom: 15px; +} +@media (min-width: 768px) +{ + .navbar-text + { + float: left; + + margin-right: 15px; + margin-left: 15px; + } +} + +@media (min-width: 768px) +{ + .navbar-left + { + float: left !important; + } + .navbar-right + { + float: right !important; + + margin-right: -15px; + } + .navbar-right ~ .navbar-right + { + margin-right: 0; + } +} + +.navbar-default +{ + border-color: #e7e7e7; + background-color: #f8f8f8; +} +.navbar-default .navbar-brand +{ + color: #777; +} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus +{ + color: #5e5e5e; + background-color: transparent; +} +.navbar-default .navbar-text +{ + color: #777; +} +.navbar-default .navbar-nav > li > a +{ + color: #777; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus +{ + color: #333; + background-color: transparent; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus +{ + color: #555; + background-color: #e7e7e7; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus +{ + color: #ccc; + background-color: transparent; +} +.navbar-default .navbar-toggle +{ + border-color: #ddd; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus +{ + background-color: #ddd; +} +.navbar-default .navbar-toggle .icon-bar +{ + background-color: #888; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form +{ + border-color: #e7e7e7; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus +{ + color: #555; + background-color: #e7e7e7; +} +@media (max-width: 767px) +{ + .navbar-default .navbar-nav .open .dropdown-menu > li > a + { + color: #777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus + { + color: #333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus + { + color: #555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus + { + color: #ccc; + background-color: transparent; + } +} +.navbar-default .navbar-link +{ + color: #777; +} +.navbar-default .navbar-link:hover +{ + color: #333; +} +.navbar-default .btn-link +{ + color: #777; +} +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus +{ + color: #333; +} +.navbar-default .btn-link[disabled]:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:hover, +fieldset[disabled] .navbar-default .btn-link:focus +{ + color: #ccc; +} + +.navbar-inverse +{ + border-color: #090909; + background-color: #222; +} +.navbar-inverse .navbar-brand +{ + color: #9d9d9d; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus +{ + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-text +{ + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a +{ + color: #9d9d9d; +} +.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: #090909; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus +{ + color: #444; + background-color: transparent; +} +.navbar-inverse .navbar-toggle +{ + border-color: #333; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus +{ + background-color: #333; +} +.navbar-inverse .navbar-toggle .icon-bar +{ + background-color: #fff; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form +{ + border-color: #101010; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus +{ + color: #fff; + background-color: #090909; +} +@media (max-width: 767px) +{ + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header + { + border-color: #090909; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider + { + background-color: #090909; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a + { + color: #9d9d9d; + } + .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: #090909; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus + { + color: #444; + background-color: transparent; + } +} +.navbar-inverse .navbar-link +{ + color: #9d9d9d; +} +.navbar-inverse .navbar-link:hover +{ + color: #fff; +} +.navbar-inverse .btn-link +{ + color: #9d9d9d; +} +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus +{ + color: #fff; +} +.navbar-inverse .btn-link[disabled]:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:hover, +fieldset[disabled] .navbar-inverse .btn-link:focus +{ + color: #444; +} + +.breadcrumb +{ + margin-bottom: 20px; + padding: 8px 15px; + + list-style: none; + + border-radius: 4px; + background-color: #f5f5f5; +} +.breadcrumb > li +{ + display: inline-block; +} +.breadcrumb > li + li:before +{ + padding: 0 5px; + + content: '/ '; + + color: #ccc; +} +.breadcrumb > .active +{ + color: #777; +} + +.pagination +{ + display: inline-block; + + margin: 20px 0; + padding-left: 0; + + border-radius: 4px; +} +.pagination > li +{ + display: inline; +} +.pagination > li > a, +.pagination > li > span +{ + line-height: 1.42857; + + position: relative; + + float: left; + + margin-left: -1px; + padding: 6px 12px; + + text-decoration: none; + + color: #337ab7; + border: 1px solid #ddd; + background-color: #fff; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span +{ + margin-left: 0; + + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span +{ + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} +.pagination > li > a:hover, +.pagination > li > a:focus, +.pagination > li > span:hover, +.pagination > li > span:focus +{ + z-index: 2; + + color: #23527c; + border-color: #ddd; + background-color: #eee; +} +.pagination > .active > a, +.pagination > .active > a:hover, +.pagination > .active > a:focus, +.pagination > .active > span, +.pagination > .active > span:hover, +.pagination > .active > span:focus +{ + z-index: 3; + + cursor: default; + + color: #fff; + border-color: #337ab7; + background-color: #337ab7; +} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus +{ + cursor: not-allowed; + + color: #777; + border-color: #ddd; + background-color: #fff; +} + +.pagination-lg > li > a, +.pagination-lg > li > span +{ + font-size: 18px; + line-height: 1.33333; + + padding: 10px 16px; +} + +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span +{ + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} + +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span +{ + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} + +.pagination-sm > li > a, +.pagination-sm > li > span +{ + font-size: 12px; + line-height: 1.5; + + padding: 5px 10px; +} + +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span +{ + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} + +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span +{ + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.pager +{ + margin: 20px 0; + padding-left: 0; + + list-style: none; + + text-align: center; +} +.pager:before, +.pager:after +{ + display: table; + + content: ' '; +} +.pager:after +{ + clear: both; +} +.pager li +{ + display: inline; +} +.pager li > a, +.pager li > span +{ + display: inline-block; + + padding: 5px 14px; + + border: 1px solid #ddd; + border-radius: 15px; + background-color: #fff; +} +.pager li > a:hover, +.pager li > a:focus +{ + text-decoration: none; + + background-color: #eee; +} +.pager .next > a, +.pager .next > span +{ + float: right; +} +.pager .previous > a, +.pager .previous > span +{ + float: left; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span +{ + cursor: not-allowed; + + color: #777; + background-color: #fff; +} + +.label +{ + font-size: 75%; + font-weight: bold; + line-height: 1; + + display: inline; + + padding: .2em .6em .3em; + + text-align: center; + vertical-align: baseline; + white-space: nowrap; + + color: #fff; + border-radius: .25em; +} +.label:empty +{ + display: none; +} +.btn .label +{ + position: relative; + top: -1px; +} + +a.label:hover, +a.label:focus +{ + cursor: pointer; + text-decoration: none; + + color: #fff; +} + +.label-default +{ + background-color: #777; +} +.label-default[href]:hover, +.label-default[href]:focus +{ + background-color: #5e5e5e; +} + +.label-primary +{ + background-color: #337ab7; +} +.label-primary[href]:hover, +.label-primary[href]:focus +{ + background-color: #286090; +} + +.label-success +{ + background-color: #5cb85c; +} +.label-success[href]:hover, +.label-success[href]:focus +{ + background-color: #449d44; +} + +.label-info +{ + background-color: #5bc0de; +} +.label-info[href]:hover, +.label-info[href]:focus +{ + background-color: #31b0d5; +} + +.label-warning +{ + background-color: #f0ad4e; +} +.label-warning[href]:hover, +.label-warning[href]:focus +{ + background-color: #ec971f; +} + +.label-danger +{ + background-color: #d9534f; +} +.label-danger[href]:hover, +.label-danger[href]:focus +{ + background-color: #c9302c; +} + +.badge +{ + font-size: 12px; + font-weight: bold; + line-height: 1; + + display: inline-block; + + min-width: 10px; + padding: 3px 7px; + + text-align: center; + vertical-align: middle; + white-space: nowrap; + + color: #fff; + border-radius: 10px; + background-color: #777; +} +.badge:empty +{ + display: none; +} +.btn .badge +{ + position: relative; + top: -1px; +} +.btn-xs .badge, +.btn-group-xs > .btn .badge, +.btn-group-xs > .btn .badge +{ + top: 0; + + padding: 1px 5px; +} +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge +{ + color: #337ab7; + 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; +} + +a.badge:hover, +a.badge:focus +{ + cursor: pointer; + text-decoration: none; + + color: #fff; +} + +.jumbotron +{ + margin-bottom: 30px; + padding-top: 30px; + padding-bottom: 30px; + + color: inherit; + background-color: #eee; +} +.jumbotron h1, +.jumbotron .h1 +{ + color: inherit; +} +.jumbotron p +{ + font-size: 21px; + font-weight: 200; + + margin-bottom: 15px; +} +.jumbotron > hr +{ + border-top-color: #d5d5d5; +} +.container .jumbotron, +.container-fluid .jumbotron +{ + padding-right: 15px; + padding-left: 15px; + + border-radius: 6px; +} +.jumbotron .container +{ + max-width: 100%; +} +@media screen and (min-width: 768px) +{ + .jumbotron + { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron, + .container-fluid .jumbotron + { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1, + .jumbotron .h1 + { + font-size: 63px; + } +} + +.thumbnail +{ + line-height: 1.42857; + + display: block; + + margin-bottom: 20px; + padding: 4px; + + -webkit-transition: border .2s ease-in-out; + transition: border .2s ease-in-out; + + border: 1px solid #ddd; + border-radius: 4px; + background-color: #fff; +} +.thumbnail > img, +.thumbnail a > img +{ + display: block; + + max-width: 100%; + height: auto; + margin-right: auto; + margin-left: auto; +} +.thumbnail .caption +{ + padding: 9px; + + color: #333; +} + +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active +{ + border-color: #337ab7; +} + +.alert +{ + margin-bottom: 20px; + padding: 15px; + + border: 1px solid transparent; + border-radius: 4px; +} +.alert h4 +{ + margin-top: 0; + + color: inherit; +} +.alert .alert-link +{ + font-weight: bold; +} +.alert > p, +.alert > ul +{ + margin-bottom: 0; +} +.alert > p + p +{ + margin-top: 5px; +} + +.alert-dismissable, +.alert-dismissible +{ + padding-right: 35px; +} +.alert-dismissable .close, +.alert-dismissible .close +{ + position: relative; + top: -2px; + right: -21px; + + color: inherit; +} + +.alert-success +{ + color: #3c763d; + border-color: #d6e9c6; + background-color: #dff0d8; +} +.alert-success hr +{ + border-top-color: #c9e2b3; +} +.alert-success .alert-link +{ + color: #2b542c; +} + +.alert-info +{ + color: #31708f; + border-color: #bce8f1; + background-color: #d9edf7; +} +.alert-info hr +{ + border-top-color: #a6e1ec; +} +.alert-info .alert-link +{ + color: #245269; +} + +.alert-warning +{ + color: #8a6d3b; + border-color: #faebcc; + background-color: #fcf8e3; +} +.alert-warning hr +{ + border-top-color: #f7e1b5; +} +.alert-warning .alert-link +{ + color: #66512c; +} + +.alert-danger +{ + color: #a94442; + border-color: #ebccd1; + background-color: #f2dede; +} +.alert-danger hr +{ + border-top-color: #e4b9c0; +} +.alert-danger .alert-link +{ + color: #843534; +} + +@-webkit-keyframes progress-bar-stripes +{ + from + { + background-position: 40px 0; + } + to + { + background-position: 0 0; + } +} + +@keyframes progress-bar-stripes +{ + from + { + background-position: 40px 0; + } + to + { + background-position: 0 0; + } +} + +.progress +{ + overflow: hidden; + + height: 20px; + margin-bottom: 20px; + + border-radius: 4px; + background-color: #f5f5f5; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); +} + +.progress-bar +{ + font-size: 12px; + line-height: 20px; + + float: left; + + width: 0; + height: 100%; + + -webkit-transition: width .6s ease; + transition: width .6s ease; + text-align: center; + + color: #fff; + background-color: #337ab7; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); +} + +.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: 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-size: 40px 40px; +} + +.progress.active .progress-bar, +.progress-bar.active +{ + -webkit-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-bar-success +{ + background-color: #5cb85c; +} +.progress-striped .progress-bar-success +{ + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .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: #5bc0de; +} +.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: 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: #f0ad4e; +} +.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: 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: #d9534f; +} +.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: 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 +{ + margin-bottom: 20px; + padding-left: 0; +} + +.list-group-item +{ + position: relative; + + display: block; + + margin-bottom: -1px; + padding: 10px 15px; + + border: 1px solid #ddd; + background-color: #fff; +} +.list-group-item:first-child +{ + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} +.list-group-item:last-child +{ + margin-bottom: 0; + + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +a.list-group-item, +button.list-group-item +{ + color: #555; +} +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading +{ + color: #333; +} +a.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:hover, +button.list-group-item:focus +{ + text-decoration: none; + + color: #555; + background-color: #f5f5f5; +} + +button.list-group-item +{ + width: 100%; + + text-align: left; +} + +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus +{ + cursor: not-allowed; + + color: #777; + background-color: #eee; +} +.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: #777; +} + +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus +{ + z-index: 2; + + color: #fff; + border-color: #337ab7; + background-color: #337ab7; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active:focus .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: #c7ddef; +} + +.list-group-item-success +{ + color: #3c763d; + background-color: #dff0d8; +} + +a.list-group-item-success, +button.list-group-item-success +{ + color: #3c763d; +} +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, +a.list-group-item-success:focus, +button.list-group-item-success:hover, +button.list-group-item-success:focus +{ + color: #3c763d; + background-color: #d0e9c6; +} +a.list-group-item-success.active, +a.list-group-item-success.active:hover, +a.list-group-item-success.active:focus, +button.list-group-item-success.active, +button.list-group-item-success.active:hover, +button.list-group-item-success.active:focus +{ + color: #fff; + border-color: #3c763d; + background-color: #3c763d; +} + +.list-group-item-info +{ + color: #31708f; + background-color: #d9edf7; +} + +a.list-group-item-info, +button.list-group-item-info +{ + color: #31708f; +} +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, +a.list-group-item-info:focus, +button.list-group-item-info:hover, +button.list-group-item-info:focus +{ + color: #31708f; + background-color: #c4e3f3; +} +a.list-group-item-info.active, +a.list-group-item-info.active:hover, +a.list-group-item-info.active:focus, +button.list-group-item-info.active, +button.list-group-item-info.active:hover, +button.list-group-item-info.active:focus +{ + color: #fff; + border-color: #31708f; + background-color: #31708f; +} + +.list-group-item-warning +{ + color: #8a6d3b; + background-color: #fcf8e3; +} + +a.list-group-item-warning, +button.list-group-item-warning +{ + color: #8a6d3b; +} +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, +a.list-group-item-warning:focus, +button.list-group-item-warning:hover, +button.list-group-item-warning:focus +{ + color: #8a6d3b; + background-color: #faf2cc; +} +a.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus, +button.list-group-item-warning.active, +button.list-group-item-warning.active:hover, +button.list-group-item-warning.active:focus +{ + color: #fff; + border-color: #8a6d3b; + background-color: #8a6d3b; +} + +.list-group-item-danger +{ + color: #a94442; + background-color: #f2dede; +} + +a.list-group-item-danger, +button.list-group-item-danger +{ + color: #a94442; +} +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, +a.list-group-item-danger:focus, +button.list-group-item-danger:hover, +button.list-group-item-danger:focus +{ + color: #a94442; + background-color: #ebcccc; +} +a.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus, +button.list-group-item-danger.active, +button.list-group-item-danger.active:hover, +button.list-group-item-danger.active:focus +{ + color: #fff; + border-color: #a94442; + background-color: #a94442; +} + +.list-group-item-heading +{ + margin-top: 0; + margin-bottom: 5px; +} + +.list-group-item-text +{ + line-height: 1.3; + + margin-bottom: 0; +} + +.panel +{ + margin-bottom: 20px; + + border: 1px solid transparent; + border-radius: 4px; + background-color: #fff; + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); +} + +.panel-body +{ + padding: 15px; +} +.panel-body:before, +.panel-body:after +{ + display: table; + + content: ' '; +} +.panel-body:after +{ + clear: both; +} + +.panel-heading +{ + padding: 10px 15px; + + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel-heading > .dropdown .dropdown-toggle +{ + color: inherit; +} + +.panel-title +{ + font-size: 16px; + + margin-top: 0; + margin-bottom: 0; + + color: inherit; +} +.panel-title > a, +.panel-title > small, +.panel-title > .small, +.panel-title > small > a, +.panel-title > .small > a +{ + color: inherit; +} + +.panel-footer +{ + padding: 10px 15px; + + border-top: 1px solid #ddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; + background-color: #f5f5f5; +} + +.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: 3px; + border-top-right-radius: 3px; +} +.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: 3px; + border-bottom-left-radius: 3px; +} + +.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: 15px; + padding-left: 15px; +} + +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child +{ + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .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 > thead:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child +{ + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .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 th:first-child, +.panel > .table-responsive:first-child > .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 th:first-child +{ + border-top-left-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .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 th:last-child, +.panel > .table-responsive:first-child > .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 th:last-child +{ + border-top-right-radius: 3px; +} + +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child +{ + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .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 > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child +{ + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .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 th:first-child, +.panel > .table-responsive:last-child > .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 th:first-child +{ + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .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 th:last-child, +.panel > .table-responsive:last-child > .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 th:last-child +{ + border-bottom-right-radius: 3px; +} + +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body +{ + border-top: 1px solid #ddd; +} + +.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-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th: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-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th: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-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th +{ + border-bottom: 0; +} +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.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: 20px; +} +.panel-group .panel +{ + margin-bottom: 0; + + border-radius: 4px; +} +.panel-group .panel + .panel +{ + margin-top: 5px; +} +.panel-group .panel-heading +{ + border-bottom: 0; +} +.panel-group .panel-heading + .panel-collapse > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group +{ + border-top: 1px solid #ddd; +} +.panel-group .panel-footer +{ + border-top: 0; +} +.panel-group .panel-footer + .panel-collapse .panel-body +{ + border-bottom: 1px solid #ddd; +} + +.panel-default +{ + border-color: #ddd; +} +.panel-default > .panel-heading +{ + color: #333; + border-color: #ddd; + background-color: #f5f5f5; +} +.panel-default > .panel-heading + .panel-collapse > .panel-body +{ + border-top-color: #ddd; +} +.panel-default > .panel-heading .badge +{ + color: #f5f5f5; + background-color: #333; +} +.panel-default > .panel-footer + .panel-collapse > .panel-body +{ + border-bottom-color: #ddd; +} + +.panel-primary +{ + border-color: #337ab7; +} +.panel-primary > .panel-heading +{ + color: #fff; + border-color: #337ab7; + background-color: #337ab7; +} +.panel-primary > .panel-heading + .panel-collapse > .panel-body +{ + border-top-color: #337ab7; +} +.panel-primary > .panel-heading .badge +{ + color: #337ab7; + background-color: #fff; +} +.panel-primary > .panel-footer + .panel-collapse > .panel-body +{ + border-bottom-color: #337ab7; +} + +.panel-success +{ + border-color: #d6e9c6; +} +.panel-success > .panel-heading +{ + color: #3c763d; + border-color: #d6e9c6; + background-color: #dff0d8; +} +.panel-success > .panel-heading + .panel-collapse > .panel-body +{ + border-top-color: #d6e9c6; +} +.panel-success > .panel-heading .badge +{ + color: #dff0d8; + background-color: #3c763d; +} +.panel-success > .panel-footer + .panel-collapse > .panel-body +{ + border-bottom-color: #d6e9c6; +} + +.panel-info +{ + border-color: #bce8f1; +} +.panel-info > .panel-heading +{ + color: #31708f; + border-color: #bce8f1; + background-color: #d9edf7; +} +.panel-info > .panel-heading + .panel-collapse > .panel-body +{ + border-top-color: #bce8f1; +} +.panel-info > .panel-heading .badge +{ + color: #d9edf7; + background-color: #31708f; +} +.panel-info > .panel-footer + .panel-collapse > .panel-body +{ + border-bottom-color: #bce8f1; +} + +.panel-warning +{ + border-color: #faebcc; +} +.panel-warning > .panel-heading +{ + color: #8a6d3b; + border-color: #faebcc; + background-color: #fcf8e3; +} +.panel-warning > .panel-heading + .panel-collapse > .panel-body +{ + border-top-color: #faebcc; +} +.panel-warning > .panel-heading .badge +{ + color: #fcf8e3; + background-color: #8a6d3b; +} +.panel-warning > .panel-footer + .panel-collapse > .panel-body +{ + border-bottom-color: #faebcc; +} + +.panel-danger +{ + border-color: #ebccd1; +} +.panel-danger > .panel-heading +{ + color: #a94442; + border-color: #ebccd1; + background-color: #f2dede; +} +.panel-danger > .panel-heading + .panel-collapse > .panel-body +{ + border-top-color: #ebccd1; +} +.panel-danger > .panel-heading .badge +{ + color: #f2dede; + background-color: #a94442; +} +.panel-danger > .panel-footer + .panel-collapse > .panel-body +{ + border-bottom-color: #ebccd1; +} + +.embed-responsive +{ + position: relative; + + display: block; + overflow: hidden; + + height: 0; + padding: 0; +} +.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; + margin-bottom: 20px; + padding: 19px; + + border: 1px solid #e3e3e3; + border-radius: 4px; + background-color: #f5f5f5; + 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: 6px; +} + +.well-sm +{ + padding: 9px; + + border-radius: 3px; +} + +.close +{ + font-size: 21px; + font-weight: bold; + line-height: 1; + + float: right; + + opacity: .2; + color: #000; + text-shadow: 0 1px 0 #fff; + + filter: alpha(opacity=20); +} +.close:hover, +.close:focus +{ + cursor: pointer; + text-decoration: none; + + opacity: .5; + color: #000; + + filter: alpha(opacity=50); +} + +button.close +{ + padding: 0; + + cursor: pointer; + + border: 0; + background: transparent; + + -webkit-appearance: none; +} + +.modal-open +{ + overflow: hidden; +} + +.modal +{ + position: fixed; + z-index: 1050; + top: 0; + right: 0; + bottom: 0; + left: 0; + + display: none; + overflow: hidden; + + outline: 0; + + -webkit-overflow-scrolling: touch; +} +.modal.fade .modal-dialog +{ + -webkit-transition: -webkit-transform .3s ease-out; + transition: -webkit-transform .3s ease-out; + transition: transform .3s ease-out; + transition: transform .3s ease-out, -webkit-transform .3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + transform: translate(0, -25%); +} +.modal.in .modal-dialog +{ + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); +} + +.modal-open .modal +{ + overflow-x: hidden; + overflow-y: auto; +} + +.modal-dialog +{ + position: relative; + + width: auto; + margin: 10px; +} + +.modal-content +{ + position: relative; + + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + outline: 0; + background-color: #fff; + background-clip: padding-box; + box-shadow: 0 3px 9px rgba(0, 0, 0, .5); +} + +.modal-backdrop +{ + position: fixed; + z-index: 1040; + top: 0; + right: 0; + bottom: 0; + left: 0; + + background-color: #000; +} +.modal-backdrop.fade +{ + opacity: 0; + + filter: alpha(opacity=0); +} +.modal-backdrop.in +{ + opacity: .5; + + filter: alpha(opacity=50); +} + +.modal-header +{ + padding: 15px; + + border-bottom: 1px solid #e5e5e5; +} +.modal-header:before, +.modal-header:after +{ + display: table; + + content: ' '; +} +.modal-header:after +{ + clear: both; +} + +.modal-header .close +{ + margin-top: -2px; +} + +.modal-title +{ + line-height: 1.42857; + + margin: 0; +} + +.modal-body +{ + position: relative; + + padding: 15px; +} + +.modal-footer +{ + padding: 15px; + + text-align: right; + + border-top: 1px solid #e5e5e5; +} +.modal-footer:before, +.modal-footer:after +{ + display: table; + + content: ' '; +} +.modal-footer:after +{ + clear: both; +} +.modal-footer .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; + + overflow: scroll; + + width: 50px; + height: 50px; +} + +@media (min-width: 768px) +{ + .modal-dialog + { + width: 600px; + margin: 30px auto; + } + .modal-content + { + box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + } + .modal-sm + { + width: 300px; + } +} + +@media (min-width: 992px) +{ + .modal-lg + { + width: 900px; + } +} + +.tooltip +{ + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 12px; + font-weight: normal; + font-style: normal; + line-height: 1.42857; + + position: absolute; + z-index: 1070; + + display: block; + + text-align: left; + text-align: start; + white-space: normal; + text-decoration: none; + letter-spacing: normal; + word-spacing: normal; + text-transform: none; + word-wrap: normal; + word-break: normal; + + opacity: 0; + text-shadow: none; + + line-break: auto; + filter: alpha(opacity=0); +} +.tooltip.in +{ + opacity: .9; + + filter: alpha(opacity=90); +} +.tooltip.top +{ + margin-top: -3px; + padding: 5px 0; +} +.tooltip.right +{ + margin-left: 3px; + padding: 0 5px; +} +.tooltip.bottom +{ + margin-top: 3px; + padding: 5px 0; +} +.tooltip.left +{ + margin-left: -3px; + padding: 0 5px; +} + +.tooltip-inner +{ + max-width: 200px; + padding: 3px 8px; + + text-align: center; + + color: #fff; + border-radius: 4px; + background-color: #000; +} + +.tooltip-arrow +{ + position: absolute; + + width: 0; + height: 0; + + border-style: solid; + border-color: transparent; +} + +.tooltip.top .tooltip-arrow +{ + bottom: 0; + left: 50%; + + margin-left: -5px; + + border-width: 5px 5px 0; + border-top-color: #000; +} + +.tooltip.top-left .tooltip-arrow +{ + right: 5px; + bottom: 0; + + margin-bottom: -5px; + + border-width: 5px 5px 0; + border-top-color: #000; +} + +.tooltip.top-right .tooltip-arrow +{ + bottom: 0; + left: 5px; + + margin-bottom: -5px; + + border-width: 5px 5px 0; + border-top-color: #000; +} + +.tooltip.right .tooltip-arrow +{ + top: 50%; + left: 0; + + margin-top: -5px; + + border-width: 5px 5px 5px 0; + border-right-color: #000; +} + +.tooltip.left .tooltip-arrow +{ + top: 50%; + right: 0; + + margin-top: -5px; + + border-width: 5px 0 5px 5px; + border-left-color: #000; +} + +.tooltip.bottom .tooltip-arrow +{ + top: 0; + left: 50%; + + margin-left: -5px; + + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.tooltip.bottom-left .tooltip-arrow +{ + top: 0; + right: 5px; + + margin-top: -5px; + + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.tooltip.bottom-right .tooltip-arrow +{ + top: 0; + left: 5px; + + margin-top: -5px; + + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.popover +{ + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 14px; + font-weight: normal; + font-style: normal; + line-height: 1.42857; + + position: absolute; + z-index: 1060; + top: 0; + left: 0; + + display: none; + + max-width: 276px; + padding: 1px; + + text-align: left; + text-align: start; + white-space: normal; + text-decoration: none; + letter-spacing: normal; + word-spacing: normal; + text-transform: none; + word-wrap: normal; + word-break: normal; + + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + background-color: #fff; + background-clip: padding-box; + box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + text-shadow: none; + + 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 +{ + font-size: 14px; + + margin: 0; + padding: 8px 14px; + + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; + background-color: #f7f7f7; +} + +.popover-content +{ + padding: 9px 14px; +} + +.popover > .arrow, +.popover > .arrow:after +{ + position: absolute; + + display: block; + + width: 0; + height: 0; + + border-style: solid; + border-color: transparent; +} + +.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: #999; + border-top-color: rgba(0, 0, 0, .25); + 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: #999; + border-right-color: rgba(0, 0, 0, .25); + 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: #999; + border-bottom-color: rgba(0, 0, 0, .25); +} +.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: #999; + border-left-color: rgba(0, 0, 0, .25); +} +.popover.left > .arrow:after +{ + right: 1px; + bottom: -10px; + + content: ' '; + + border-right-width: 0; + border-left-color: #fff; +} + +.carousel +{ + position: relative; +} + +.carousel-inner +{ + position: relative; + + overflow: hidden; + + width: 100%; +} +.carousel-inner > .item +{ + position: relative; + + display: none; + + -webkit-transition: .6s ease-in-out left; + transition: .6s ease-in-out left; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img +{ + line-height: 1; + + display: block; + + max-width: 100%; + height: auto; +} +@media all and (transform-3d), (-webkit-transform-3d) +{ + .carousel-inner > .item + { + -webkit-transition: -webkit-transform .6s ease-in-out; + transition: -webkit-transform .6s ease-in-out; + transition: transform .6s ease-in-out; + transition: transform .6s ease-in-out, -webkit-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 +{ + font-size: 20px; + + position: absolute; + top: 0; + bottom: 0; + left: 0; + + width: 15%; + + text-align: center; + + opacity: .5; + color: #fff; + background-color: transparent; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + + filter: alpha(opacity=50); +} +.carousel-control.left +{ + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-repeat: repeat-x; + + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); +} +.carousel-control.right +{ + right: 0; + left: auto; + + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-repeat: repeat-x; + + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); +} +.carousel-control:hover, +.carousel-control:focus +{ + text-decoration: none; + + opacity: .9; + color: #fff; + outline: 0; + + filter: alpha(opacity=90); +} +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right +{ + position: absolute; + z-index: 5; + top: 50%; + + 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 +{ + font-family: serif; + line-height: 1; + + width: 20px; + height: 20px; +} +.carousel-control .icon-prev:before +{ + content: '\2039'; +} +.carousel-control .icon-next:before +{ + content: '\203a'; +} + +.carousel-indicators +{ + position: absolute; + z-index: 15; + bottom: 10px; + left: 50%; + + width: 60%; + margin-left: -30%; + padding-left: 0; + + list-style: none; + + text-align: center; +} +.carousel-indicators li +{ + display: inline-block; + + width: 10px; + height: 10px; + margin: 1px; + + cursor: pointer; + text-indent: -999px; + + border: 1px solid #fff; + border-radius: 10px; + background-color: #000 \9; + background-color: transparent; +} +.carousel-indicators .active +{ + width: 12px; + height: 12px; + margin: 0; + + background-color: #fff; +} + +.carousel-caption +{ + position: absolute; + z-index: 10; + right: 15%; + bottom: 20px; + left: 15%; + + padding-top: 20px; + padding-bottom: 20px; + + text-align: center; + + color: #fff; + 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 + { + font-size: 30px; + + width: 30px; + height: 30px; + margin-top: -10px; + } + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev + { + margin-left: -10px; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next + { + margin-right: -10px; + } + .carousel-caption + { + right: 20%; + left: 20%; + + padding-bottom: 30px; + } + .carousel-indicators + { + bottom: 20px; + } +} + +.clearfix:before, +.clearfix:after +{ + display: table; + + content: ' '; +} + +.clearfix:after +{ + clear: both; +} + +.center-block +{ + display: block; + + margin-right: auto; + margin-left: auto; +} + +.pull-right +{ + float: right !important; +} + +.pull-left +{ + float: left !important; +} + +.hide +{ + display: none !important; +} + +.show +{ + display: block !important; +} + +.invisible +{ + visibility: hidden; +} + +.text-hide +{ + font: 0/0 a; + + color: transparent; + border: 0; + background-color: transparent; + text-shadow: none; +} + +.hidden +{ + display: none !important; +} + +.affix +{ + position: fixed; +} + +@-ms-viewport +{ + width: device-width; +} + +.visible-xs +{ + display: none !important; +} + +.visible-sm +{ + display: none !important; +} + +.visible-md +{ + display: none !important; +} + +.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; + } +} + +@font-face +{ + font-family: 'Inconsolata'; + font-weight: normal; + font-style: normal; + + src: url('../fonts/Inconsolata-Regular.eot'); + src: url('../fonts/Inconsolata-Regular.eot?#iefix') format('embedded-opentype'), url('../fonts/Inconsolata-Regular.woff2') format('woff2'), url('../fonts/Inconsolata-Regular.woff') format('woff'), url('../fonts/Inconsolata-Regular.ttf') format('truetype'), url('../fonts/Inconsolata-Regular.svg#Inconsolata-Regular') format('svg'); +} + +@font-face +{ + font-family: 'Inconsolata'; + font-weight: bold; + font-style: normal; + + src: url('../fonts/Inconsolata-Bold.eot'); + src: url('../fonts/Inconsolata-Bold.eot?#iefix') format('embedded-opentype'), url('../fonts/Inconsolata-Bold.woff2') format('woff2'), url('../fonts/Inconsolata-Bold.woff') format('woff'), url('../fonts/Inconsolata-Bold.ttf') format('truetype'), url('../fonts/Inconsolata-Bold.svg#Inconsolata-Bold') format('svg'); +} + +@font-face +{ + font-family: 'Roboto Slab'; + font-weight: normal; + font-style: normal; + + src: url('../fonts/RobotoSlab-Regular.eot'); + src: url('../fonts/RobotoSlab-Regular.eot?#iefix') format('embedded-opentype'), url('../fonts/RobotoSlab-Regular.woff2') format('woff2'), url('../fonts/RobotoSlab-Regular.woff') format('woff'), url('../fonts/RobotoSlab-Regular.ttf') format('truetype'), url('../fonts/RobotoSlab-Regular.svg#RobotoSlab-Regular') format('svg'); +} + +@font-face +{ + font-family: 'Roboto Slab'; + font-weight: 100; + font-style: normal; + + src: url('../fonts/RobotoSlab-Thin.eot'); + src: url('../fonts/RobotoSlab-Thin.eot?#iefix') format('embedded-opentype'), url('../fonts/RobotoSlab-Thin.woff2') format('woff2'), url('../fonts/RobotoSlab-Thin.woff') format('woff'), url('../fonts/RobotoSlab-Thin.ttf') format('truetype'), url('../fonts/RobotoSlab-Thin.svg#RobotoSlab-Thin') format('svg'); +} + +@font-face +{ + font-family: 'Roboto Slab'; + font-weight: 300; + font-style: normal; + + src: url('../fonts/RobotoSlab-Light.eot'); + src: url('../fonts/RobotoSlab-Light.eot?#iefix') format('embedded-opentype'), url('../fonts/RobotoSlab-Light.woff2') format('woff2'), url('../fonts/RobotoSlab-Light.woff') format('woff'), url('../fonts/RobotoSlab-Light.ttf') format('truetype'), url('../fonts/RobotoSlab-Light.svg#RobotoSlab-Light') format('svg'); +} + +@font-face +{ + font-family: 'Roboto Slab'; + font-weight: bold; + font-style: normal; + + src: url('../fonts/RobotoSlab-Bold.eot'); + src: url('../fonts/RobotoSlab-Bold.eot?#iefix') format('embedded-opentype'), url('../fonts/RobotoSlab-Bold.woff2') format('woff2'), url('../fonts/RobotoSlab-Bold.woff') format('woff'), url('../fonts/RobotoSlab-Bold.ttf') format('truetype'), url('../fonts/RobotoSlab-Bold.svg#RobotoSlab-Bold') format('svg'); +} + +.layout +{ + display: -webkit-box; + display: -ms-flexbox; + display: flex; + + min-width: 320px; + max-width: 100%; + margin: 0 auto; + + background: #fff; + + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} + +.layout .content +{ + padding-left: 10px; + padding-right: 10px; + padding-top: 0px; + padding-bottom: 0px; +} + +@media screen and (max-width: 480px) +{ + .layout + { + display: block; + } +} + +.layout__content +{ + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} + +.sidebar +{ + position: relative; + + overflow: auto; + + width: 300px; + min-width: 300px; + + -webkit-transition: .12s ease-out; + transition: .12s ease-out; + + background: #326de6; + background: -webkit-linear-gradient(45deg, #326de6 0%, #4cffd4 100%); + background: linear-gradient(45deg, #326de6 0%, #4cffd4 100%); +} +.sidebar:before +{ + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + + content: ''; + -webkit-transition: .12s ease-out; + transition: .12s ease-out; + + opacity: 0; + background: #fff; +} +.page_open .sidebar:before, +.sidebar:hover:before +{ + opacity: .7; +} +@media screen and (min-width: 999px) +{ + .sidebar:before + { + opacity: .7; + } +} +@media screen and (min-width: 1000px) +{ + .page_desktop_hide .sidebar:before + { + opacity: 0; + } +} +@media screen and (max-width: 480px) +{ + .sidebar + { + position: fixed; + z-index: 600; + top: 0; + left: 0; + + overflow: visible; + + width: 100%; + height: 60px; + + -webkit-transition: background .12s linear; + transition: background .12s linear; + + background: #326de6; + box-shadow: 0 0 5px rgba(0, 0, 0, .5); + } + .page_open .sidebar + { + background: #fff; + } + .sidebar:before + { + opacity: 0; + } +} + +.sidebar__inner +{ + position: relative; + z-index: 100; + + box-sizing: border-box; + width: 300px; + padding: 0 0 20px; +} +@media screen and (max-width: 480px) +{ + .sidebar__inner + { + width: auto; + } +} + +.nav +{ + font-family: Roboto Slab, Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; + font-size: 14px; + + min-height: 600px; + padding: 0; + + list-style: none; +} +.nav a +{ + padding: 15px 20px 16px 100px !important; + + color: #231f20 !important; + background: none !important; +} +.nav a:hover +{ + background: rgba(255, 255, 255, .2) !important; +} +@media screen and (max-width: 480px) +{ + .nav a + { + padding-top: 10px !important; + padding-bottom: 10px !important; + padding-left: 80px !important; + + color: #fff !important; + } +} +@media screen and (max-width: 320px) +{ + .nav a + { + padding-left: 40px !important; + } +} +.nav li:after +{ + position: absolute; + z-index: 30; + top: 30px; + bottom: -30px; + left: 50px; + + content: ''; + + border-left: 2px dashed #53a2e5; +} +@media screen and (max-width: 480px) +{ + .nav li:after + { + display: none; + } +} +.nav li:first-child:after +{ + top: -22px; +} +@media screen and (max-width: 480px) +{ + .nav li:first-child + { + border-top: none; + } +} +.nav li:last-child:after +{ + bottom: 30px; +} +.nav li.active > a +{ + font-weight: bold; +} +.nav li.open a +{ + background: #fff !important; +} +@media screen and (max-width: 480px) +{ + .nav li.open a + { + background: none !important; + } +} +.nav li.open a:hover +{ + background: #fff !important; +} +@media screen and (max-width: 480px) +{ + .nav li.open + { + background: rgba(0, 0, 0, .1) !important; + } +} +.nav li.sidebar__subnav.active +{ + background: #fff; +} +@media screen and (max-width: 480px) +{ + .nav li.sidebar__subnav.active + { + background: rgba(0, 0, 0, .1); + } +} +.nav li li:after +{ + top: 28px; + + width: 60px; + + border-top: 2px dashed #53a2e5; + border-left: none; +} +.nav li li:first-child:after +{ + top: 30px; +} +.nav li li a +{ + padding-left: 120px !important; +} +@media screen and (max-width: 320px) +{ + .nav li li a + { + padding-left: 80px !important; + } +} +@media screen and (max-width: 480px) +{ + .nav li + { + border-top: 2px solid rgba(255, 255, 255, .1); + } +} +.nav .nav +{ + min-height: 10px; +} + +@media screen and (max-width: 480px) +{ + .sidebar__inner > .nav + { + font-size: 16px; + + position: fixed; + top: 60px; + bottom: 100%; + left: 0; + + overflow: auto; + + width: 100%; + min-height: 0; + + -webkit-transition: .24s ease-out; + transition: .24s ease-out; + + opacity: 0; + background: rgba(50, 109, 230, .9); + } + .page_open .sidebar__inner > .nav + { + bottom: 0; + + opacity: 1; + } +} + +.sidebar__ico +{ + position: absolute; + z-index: 40; + top: 7px; + left: 40px; + + width: 22px; + height: 22px; + margin: 8px 0 0; + + content: ''; + + background: url('../images/nav_point.svg?v=1471333863065') no-repeat 50% 50%; + background-size: cover; +} +.nav li.marked > a > .sidebar__ico +{ + background-image: url('../images/nav_point_active.svg?v=1471333863065'); +} +.nav li.active > a > .sidebar__ico +{ + background-image: url('../images/nav_point_sub.svg?v=1471333863065'); +} +@media screen and (max-width: 480px) +{ + .sidebar__ico + { + display: none; + } +} + +.sidebar__subnav .nav +{ + display: none; +} +.sidebar__subnav .nav a +{ + padding-left: 25px; +} + +.nav li.active > .nav, +.nav li.open > .nav +{ + display: block; +} +.nav li.active > .nav a, +.nav li.open > .nav a +{ + border-top: 1px solid #e5eaf9; +} + +.content +{ + position: relative; + z-index: 500; + + box-sizing: border-box; + margin: 0 0 0 -200px; + padding: 20px 60px; + + -webkit-transition: .12s ease-out; + transition: .12s ease-out; + + background: #fff; + /*box-shadow: -6px 0 14px -4px rgba(0, 0, 0, .5);*/ + + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} +@media screen and (max-width: 992px) +{ + .content + { + padding-right: 20px; + padding-left: 20px; + } +} +.page_open .content +{ + margin-left: 0; +} +@media screen and (max-width: 1200px) +{ + .page_open .content + { + margin-left: -200px; + + -webkit-transform: translateX(200px); + -ms-transform: translateX(200px); + transform: translateX(200px); + } +} +@media screen and (min-width: 999px) +{ + .content + { + margin-left: 0; + + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +@media screen and (max-width: 480px) +{ + .content + { + margin-left: 0; + padding-top: 80px; + + box-shadow: none; + } + .page_open .content, + .sidebar:hover + .content + { + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +@media screen and (min-width: 1000px) +{ + .page_desktop_hide .content + { + margin-left: -200px !important; + + -webkit-transform: translateX(0) !important; + -ms-transform: translateX(0) !important; + transform: translateX(0) !important; + } +} +.content p img +{ + max-width: 100%; +} +.content hr +{ + box-sizing: border-box; +} + +.content__sider +{ + position: absolute; + top: 25px; + left: 12px; + + margin: 0 0 30px; +} +.page_open .content__sider +{ + display: block; +} +@media screen and (max-width: 992px) +{ + .content__sider + { + position: relative; + top: auto; + left: auto; + + display: block; + } +} +@media screen and (max-width: 480px) +{ + .content__sider + { + z-index: -1; + + display: none !important; + } +} + +.content__trigger +{ + position: relative; + + display: block; + + width: 36px; + height: 36px; +} +.content__trigger:before, +.content__trigger:after +{ + position: absolute; + top: 50%; + left: 4px; + + width: 30px; + height: 2px; + margin-top: -11px; + + content: ''; + -webkit-transition: -webkit-transform .12s ease-out; + transition: -webkit-transform .12s ease-out; + transition: transform .12s ease-out; + transition: transform .12s ease-out, -webkit-transform .12s ease-out; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + + background: #273d6d; +} +.content__trigger:after +{ + margin-top: 9px; + + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.page_open .content__trigger:before +{ + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.page_open .content__trigger:after +{ + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} +@media screen and (min-width: 1000px) +{ + .content__trigger:before + { + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); + } + .content__trigger:after + { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + } + .page_desktop_hide .content__trigger:before + { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + } + .page_desktop_hide .content__trigger:after + { + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); + } +} + +.content__modules +{ + margin: 50px 0; +} +.content__modules h2 +{ + margin-bottom: 30px; + padding: 0; + + border: none; +} +.content__modules .thumbnail +{ + padding: 0; + + border: none; + border-radius: 0; +} +.content__modules .thumbnail img +{ + width: 100%; + + box-shadow: 5px 5px 15px rgba(0, 0, 0, .1); +} +.content__modules .caption +{ + padding: 5px 0 10px; +} +.content__modules .caption h5 +{ + font-family: Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; + font-size: 16px; +} + +.content__likes +{ + text-align: center; +} + +.like, +.dislike +{ + display: inline-block; + + color: #326de6; +} +.like img, +.dislike img +{ + width: 80px; +} + +.content__award +{ + max-width: 250px; + margin: 0 0 20px 0; + + text-align: center; +} + +.content__badge +{ + width: 250px; +} + +.content__buttons +{ + max-width: 300px; +} + +.header +{ + padding: 20px 20px; + + background: #fff; +} +@media screen and (max-width: 480px) +{ + .header + { + position: relative; + + padding: 10px 20px; + + background: none; + } +} + +.header__site +{ + font-family: Roboto Slab, Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; + font-size: 32px; + font-weight: bold; + line-height: 60px; + + text-decoration: none !important; + + color: #231f20 !important; +} +@media screen and (max-width: 480px) +{ + .header__site + { + display: block; + overflow: hidden; + + width: 42px; + } +} + +.header__logo +{ + height: 60px; + margin: 0 10px 0 0; + + vertical-align: top; +} +@media screen and (max-width: 480px) +{ + .header__logo + { + display: none; + } +} + +.header__logo-mobile +{ + display: none; +} +@media screen and (max-width: 480px) +{ + .header__logo-mobile + { + display: block; + + height: 40px; + } +} + +@media screen and (max-width: 480px) +{ + .header__name + { + display: none; + } +} + +.header__sider +{ + position: absolute; + z-index: 1010; + top: 15px; + right: 20px; + + display: none; + + box-sizing: border-box; + width: 30px; + height: 30px; + + cursor: pointer; + + -webkit-tap-highlight-color: transparent; +} +@media screen and (max-width: 480px) +{ + .header__sider + { + display: block; + } +} + +.header__burger +{ + position: absolute; + top: 50%; + left: 0; + + width: 30px; + height: 3px; + margin: -1px 0 0 0; + + border-radius: 3px; + background: #fff; +} +.header__burger:before, +.header__burger:after +{ + position: absolute; + top: -9px; + left: 0; + + width: 100%; + height: 3px; + margin: -1px 0 0 0; + + content: ''; + -webkit-transition: .12s linear; + transition: .12s linear; + + border-radius: 3px; + background: inherit; +} +.header__burger:after +{ + top: auto; + bottom: -10px; +} +.page_open .header__burger +{ + background: transparent; +} +.page_open .header__burger:before +{ + top: 0; + + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + + background: #326de6; +} +.page_open .header__burger:after +{ + bottom: 0; + + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); + + background: #326de6; +} + +.footer +{ + font-family: Roboto Slab, Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; + + position: relative; + + margin: 20px 0 0; + + text-align: left; +} +.layout > .footer +{ + display: none; +} +@media screen and (max-width: 480px) +{ + .footer + { + display: none; + } + .layout > .footer + { + display: block; + + padding: 0 0 20px; + + text-align: center; + + background: #326de6; + } + .footer:before + { + position: relative; + + display: block; + + height: 15px; + margin: 0 0 40px; + + content: ''; + + background: -webkit-linear-gradient(45deg, #326de6 0%, #4cffd4 100%); + background: linear-gradient(45deg, #326de6 0%, #4cffd4 100%); + } +} + +.footer__content +{ + padding: 0 20px; +} + +.footer__social +{ + font-size: 32px; + line-height: 1; + + width: 60px; + margin: 0; + padding: 10px 0; + + list-style: none; + + text-align: left; + + border-top: 1px solid rgba(255, 255, 255, .3); + border-bottom: 1px solid rgba(255, 255, 255, .3); +} +.page_open .footer__social +{ + width: auto; + padding: 0; + + border: none; +} +@media screen and (min-width: 999px) +{ + .footer__social + { + width: auto; + padding: 0; + + border: none; + } +} +@media screen and (max-width: 480px) +{ + .footer__social + { + width: auto; + padding: 0; + + text-align: center; + + border: none; + } +} +@media screen and (min-width: 1000px) +{ + .page_desktop_hide .footer__social + { + width: 60px; + padding: 10px 0; + + border-top: 1px solid rgba(255, 255, 255, .3); + border-bottom: 1px solid rgba(255, 255, 255, .3); + } +} + +.footer__social-item +{ + width: 60px; + margin: 10px 0; + + text-align: center; +} +.page_open .footer__social-item +{ + display: inline-block; + + width: auto; + margin: 0 20px 0 0; + + text-align: left; +} +@media screen and (min-width: 999px) +{ + .footer__social-item + { + display: inline-block; + + width: auto; + margin: 0 20px 0 0; + + text-align: left; + } +} +@media screen and (max-width: 480px) +{ + .footer__social-item + { + display: inline-block; + + width: auto; + margin: 0 10px; + + text-align: center; + } +} +@media screen and (min-width: 1000px) +{ + .page_desktop_hide .footer__social-item + { + width: 60px; + margin: 10px 0; + + text-align: center; + } +} + +.footer__network +{ + display: inline-block; + + text-decoration: none; + + opacity: .7; + color: #fff; +} +.page_open .footer__network +{ + opacity: 1; + color: #326de6; +} +@media screen and (min-width: 999px) +{ + .footer__network + { + opacity: 1; + color: #326de6; + } +} +@media screen and (max-width: 480px) +{ + .footer__network + { + display: inline-block; + + width: auto; + margin: 0 20px 0 0; + } + .footer__network:hover + { + opacity: 1; + color: #fff; + } +} +@media screen and (min-width: 1000px) +{ + .page_desktop_hide .footer__network + { + display: inline-block; + + text-decoration: none; + + opacity: .7; + color: #fff; + } +} + +.footer__menu +{ + display: none; + + margin: 20px 0; + padding: 10px 0; + + list-style: none; + + border-top: 1px solid rgba(255, 255, 255, .3); + border-bottom: 1px solid rgba(255, 255, 255, .3); +} +.page_open .footer__menu +{ + display: block; +} +@media screen and (min-width: 999px) +{ + .footer__menu + { + display: block; + } +} +@media screen and (max-width: 480px) +{ + .footer__menu + { + display: block; + + padding-bottom: 40px; + + text-align: left; + + border-top: none; + border-bottom: 2px solid rgba(255, 255, 255, .3); + } +} +@media screen and (min-width: 1000px) +{ + .page_desktop_hide .footer__menu + { + display: none; + } +} + +.footer__item +{ + margin: 10px 0; +} +@media screen and (max-width: 480px) +{ + .footer__item:before + { + display: inline; + + margin: 0 5px 0 0; + + content: '›'; + + opacity: .7; + color: #fff; + } +} + +.footer__link +{ + color: #273d6d; +} +@media screen and (max-width: 480px) +{ + .footer__link + { + opacity: .7; + color: #fff; + } + .footer__link:hover + { + opacity: 1; + color: #fff; + } +} + +.footer__copyright +{ + font-size: 12px; + padding-top: 20px; +} +.page_open .footer__copyright +{ + display: block; +} +@media screen and (min-width: 999px) +{ + .footer__copyright + { + display: block; + } +} +@media screen and (max-width: 480px) +{ + .footer__copyright + { + display: block; + + color: #fff; + } + .footer__copyright b + { + font-size: 16px; + + display: block; + } +} +@media screen and (min-width: 1000px) +{ + .page_desktop_hide .footer__copyright + { + display: none; + } +} + +.scrolltop +{ + position: fixed; + z-index: 300; + bottom: -100px; + left: 20px; + + display: none; + + width: 56px; + height: 56px; + + -webkit-transition: .36s ease-out; + transition: .36s ease-out; + + opacity: 0; + border: 2px solid #fff; + border-radius: 50%; + outline: none; +} +.scrolltop:before, +.scrolltop:after +{ + position: absolute; + top: 23px; + left: 4px; + + width: 26px; + height: 2px; + + content: ''; + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); + + background: #fff; +} +.scrolltop:after +{ + right: 4px; + left: auto; + + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + + background: #fff; +} +@media screen and (max-width: 992px) +{ + .scrolltop + { + display: block; + } +} +@media screen and (max-width: 480px) +{ + .scrolltop + { + background: #326de6; + background: rgba(50, 109, 230, .5); + box-shadow: 0 0 0 1px #326de6; + } +} +.scrolltop_active +{ + bottom: 20px; + + opacity: 1; +} + +body +{ + font-family: Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; + font-size: 15px; + line-height: 1.5; + + /*display: -webkit-box;*/ + /*display: -ms-flexbox;*/ + /*display: flex;*/ + + min-height: 100vh; + + background: #eee; +} +body.page_open +{ + overflow: hidden; +} + +h1, +h2, +h3, +h4, +h5, +h6 +{ + font-family: Roboto Slab, Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; +} + +h1 +{ + font-size: 36px; + font-weight: bold; + + margin-bottom: 20px; +} + +h2, +h3 +{ + padding-bottom: 10px; + + border-bottom: 1px solid #ebebec; +} + +h2 +{ + font-size: 28px; +} + +.title-light +{ + border: none; +} + +a +{ + color: #326de6; +} + +p a +{ + text-decoration: underline; +} +p a:hover +{ + text-decoration: none; +} + +.breadcrumb +{ + font-weight: 100; + + padding: 0; + + color: #273d6d; + background: none; +} +.breadcrumb a, +.breadcrumb .active +{ + color: inherit; +} +.breadcrumb .active +{ + font-weight: bold; +} +.breadcrumb li + li:before +{ + margin-right: 5px; + + content: '|'; +} + +.btn +{ + font-family: Roboto Slab, Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; + + border-radius: 0; +} +.btn.btn-success +{ + color: #273d6d; + border-color: #4cffd4; + background: #4cffd4; +} +.btn.btn-success:hover +{ + border-color: #5dffe5; + background: #5dffe5; +} + +.btn-default +{ + color: #326de6; + border-color: #326de6; +} + +.btn-primary_light +{ + border-color: #8caeef; + background: #8caeef; +} +.btn-primary_light:hover +{ + border-color: #9dbfff; + background: #9dbfff; +} + +.btn__prev, +.btn__next +{ + position: relative; + + height: 16px; + margin: 0 0 0 10px; + padding: 0 5px 0 0; + + color: transparent; +} +.btn__prev:before, +.btn__prev:after, +.btn__next:before, +.btn__next:after +{ + position: absolute; + top: 50%; + left: 0; + + width: 10px; + height: 2px; + margin-top: -4px; + + content: ''; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + + background: #273d6d; +} +.btn__prev:after, +.btn__next:after +{ + margin-top: 2px; + + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.btn-default .btn__prev:before, +.btn-default .btn__prev:after, +.katacoda__steps .btn__prev:before, +.katacoda__steps .btn__prev:after, +.btn-default + .btn__next:before, +.btn-default + .btn__next:after, +.katacoda__steps + .btn__next:before, +.katacoda__steps + .btn__next:after +{ + background: #326de6; +} + +.btn__prev +{ + margin: 0 10px 0 0; +} +.btn__prev:before +{ + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.btn__prev:after +{ + margin-top: 2px; + + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} + +.content__box +{ + margin: 0 0 20px; + padding: 20px; +} + +.content__box_lined +{ + box-shadow: inset 0 0 0 1px #326de6; +} + +.content__box_fill +{ + color: #fff; + background: #326de6; +} + +.modal-counter +{ + float: left; +} + +.modal-title +{ + margin: 0; + padding: 0; + + border: 0; +} + +.modal-twitter +{ + width: 160px; + + vertical-align: top; +} + +.modal-backdrop +{ + background: #326de6; +} +.modal-backdrop.in +{ + opacity: .8; +} + +.modal-content +{ + border: 2px solid #326de6; + border-radius: 0; + box-shadow: none !important; +} + +.modal-footer, +.modal-body, +.modal-header +{ + padding: 20px 40px; + + border: none; +} + +.modal-body +{ + padding-top: 0; + padding-bottom: 0; +} + +.form-control +{ + border-radius: 0; + background: #f8f8f8; +} + +.katacoda +{ + display: table; + + width: 100%; + margin: 50px 0; +} +@media screen and (max-width: 762px) +{ + .katacoda + { + display: block; + } +} + +.katacoda__alert +{ + font-family: Inconsolata, Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; + + display: none; + + padding: 20px; + + text-align: center; + + color: #fff; + background: #383732; +} +@media screen and (max-width: 762px) +{ + .katacoda__alert + { + display: block; + } +} + +.katacoda__about +{ + display: table-cell; + + box-sizing: border-box; + width: 30%; + padding: 20px; + + vertical-align: top; + + background: #f7f7f7; +} +@media screen and (max-width: 762px) +{ + .katacoda__about + { + display: block; + + width: auto; + } +} + +.katacoda__box +{ + display: table-cell; + + vertical-align: top; + + background: #383732; +} +.katacoda__box img +{ + width: 100%; + + vertical-align: bottom; +} +@media screen and (max-width: 762px) +{ + .katacoda__box + { + display: none; + } +} + +.katacoda__steps +{ + font-size: 14px; + + color: #326de6; +} + +.carousel +{ + position: relative; + + padding: 0 0 20px; +} + +.carousel-indicators +{ + bottom: 0; +} +.carousel-indicators li +{ + width: 12px; + height: 12px; + margin: 0 10px; + + opacity: .5; + border: none; + background: #326de6; +} +.carousel-indicators li.active +{ + margin: 0 10px; + + opacity: 1; + background: #326de6; +} + +@media screen and (max-width: 992px) +{ + .carousel-inner > .item + { + display: block; + } +} + +.quiz__list +{ + display: -webkit-box; + display: -ms-flexbox; + display: flex; + + margin: 30px 0 0; + padding: 0 0 40px; + + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} +@media screen and (max-width: 992px) +{ + .quiz__list + { + display: block; + + margin-top: 10px; + } +} + +.quiz__var +{ + width: 30%; +} +@media screen and (max-width: 992px) +{ + .quiz__var + { + width: auto; + margin: 40px 0 0; + } + .quiz__var:first-child + { + margin-top: 0; + } +} + +.quiz__box +{ + position: relative; + + display: -webkit-box; + display: -ms-flexbox; + display: flex; + + box-sizing: border-box; + height: 200px; + padding: 20px 40px 40px; + + cursor: pointer; + + border: 1px solid #326de6; + + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.quiz__box:before +{ + position: absolute; + bottom: -30px; + left: 40px; + + display: none; + + width: 62px; + height: 61px; + + content: ''; + + background: #000; +} +.quiz__box:after +{ + position: absolute; + bottom: -40px; + left: 110px; + + display: none; +} +.quiz__var_open .quiz__box:before +{ + display: block; +} +.quiz__var_active .quiz__box:after +{ + display: block; +} +@media screen and (max-width: 992px) +{ + .quiz__box + { + display: block; + + height: auto; + padding: 20px 30px; + + text-align: center; + } +} + +.quiz__var_open.quiz__var_true .quiz__box +{ + border-color: #19eb7d; + box-shadow: inset 0 0 0 1px #19eb7d; +} +.quiz__var_open.quiz__var_true .quiz__box:before +{ + display: block; + + background: url('../images/quiz_true.png?v=1471333863065') no-repeat 50% 50%; + background-size: cover; +} +.quiz__var_open.quiz__var_true .quiz__box:after +{ + content: 'Correct !'; + + color: #19eb7d; +} + +.quiz__var_open.quiz__var_false .quiz__box +{ + border-color: #ee4036; + box-shadow: inset 0 0 0 1px #ee4036; +} +.quiz__var_open.quiz__var_false .quiz__box:before +{ + display: block; + + background: url('../images/quiz_false.png?v=1471333863065') no-repeat 50% 50%; + background-size: cover; +} +.quiz__var_open.quiz__var_false .quiz__box:after +{ + content: 'Try again !'; + + color: #ee4036; +} + +.quiz__list_ready .quiz__var_open.quiz__var_true .quiz__box:after +{ + display: block !important; +} + +.quiz__list_ready .quiz__var_open.quiz__var_false .quiz__box:after +{ + display: none !important; +} + +.quiz__note +{ + padding: 50px 0 0; + + opacity: 0; +} +.quiz__var_open .quiz__note +{ + opacity: 1; +} +@media screen and (max-width: 992px) +{ + .quiz__note + { + display: none; + + margin: 0 0 20px; + } + .quiz__var_open .quiz__note + { + display: block; + } +} + +.carousel-control +{ + top: 50%; + + width: 50px; + height: 50px; + margin: -38px 0 0; + + background: none !important; +} +.carousel-control:before, +.carousel-control:after +{ + position: absolute; + top: 50%; + left: 5px; + + width: 35px; + height: 2px; + margin-top: -13px; + + content: ''; + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); + + background: #8f9599; +} +.carousel-control:after +{ + margin-top: 10px; + + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} +.carousel-control.left +{ + margin-left: -75px; +} +.carousel-control.right +{ + margin-right: -75px; +} +.carousel-control.right:before +{ + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} +.carousel-control.right:after +{ + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} +@media screen and (max-width: 992px) +{ + .carousel-control + { + display: none; + } +} + +.list-blue-dots +{ + color: #326de6; +} +.list-blue-dots span +{ + color: #231f20; +} + +.pi-accordion +{ + line-height: 1.0; +} + +.pi-accordion .container +{ + padding-left: 0px; +} + +.pi-accordion .content +{ + padding-top: 0px; + padding-bottom: 0px; + padding-right: 0px; +} diff --git a/docs/tutorials/getting-started/public/images/badge-01.svg b/docs/tutorials/getting-started/public/images/badge-01.svg new file mode 100644 index 0000000000..8354a3e47b --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-01.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-02.svg b/docs/tutorials/getting-started/public/images/badge-02.svg new file mode 100644 index 0000000000..0179f9b3bb --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-02.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-03.svg b/docs/tutorials/getting-started/public/images/badge-03.svg new file mode 100644 index 0000000000..bae5d5a9b0 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-03.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-04.svg b/docs/tutorials/getting-started/public/images/badge-04.svg new file mode 100644 index 0000000000..d54fcdf820 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-04.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-05.svg b/docs/tutorials/getting-started/public/images/badge-05.svg new file mode 100644 index 0000000000..07c9a64399 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-05.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-06.svg b/docs/tutorials/getting-started/public/images/badge-06.svg new file mode 100644 index 0000000000..4d12b74c16 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-06.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-07.svg b/docs/tutorials/getting-started/public/images/badge-07.svg new file mode 100644 index 0000000000..da3b5bcfb2 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-07.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-08.svg b/docs/tutorials/getting-started/public/images/badge-08.svg new file mode 100644 index 0000000000..9a36550166 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-08.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-09.svg b/docs/tutorials/getting-started/public/images/badge-09.svg new file mode 100644 index 0000000000..da3b5bcfb2 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-09.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-1.png b/docs/tutorials/getting-started/public/images/badge-1.png new file mode 100644 index 0000000000000000000000000000000000000000..8853f855bec2318d321e988d50bdc91b4eb4a9fb GIT binary patch literal 7369 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 literal 0 HcmV?d00001 diff --git a/docs/tutorials/getting-started/public/images/dislike.svg b/docs/tutorials/getting-started/public/images/dislike.svg new file mode 100644 index 0000000000..510103ea20 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/dislike.svg @@ -0,0 +1 @@ +16.07.27_K8S_like_dislike \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/like.svg b/docs/tutorials/getting-started/public/images/like.svg new file mode 100644 index 0000000000..f2365bbcc9 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/like.svg @@ -0,0 +1 @@ +16.07.27_K8S_like_dislike \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/logo.png b/docs/tutorials/getting-started/public/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..44d3512221ace62018acc62bead250bcf247c345 GIT binary patch literal 11473 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 \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/logo_2.svg b/docs/tutorials/getting-started/public/images/logo_2.svg new file mode 100644 index 0000000000..7833a726b3 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/logo_2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/logo_mobile.png b/docs/tutorials/getting-started/public/images/logo_mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..7eac53acf7248e2b1e59b26f934c617f8552fd59 GIT binary patch literal 2084 zcmV+<2;29GP)Hu-;0CVg8{r~>{|M~p>@b&!wd+g@#{q*?$9)a!J==|&P z{`>s@`TG9+{r~9j{qgqwtIGI~x%B{e>;Qc1?DGCdlkWg@>)q=71bplwgYE!u>f!AD zqQv(Ab?Zox@Bne@Yo+patMiDq^)H9+0C(%z=ls;=`x1Wb*|bL()Z^WyFOg|qd};QIh_>pzX}^Y{J$bn6^|?WV`~q{jF6`u<&< z@jZ<15Pj`SlkYr@?*Mn~-0A#PnDD{Z`c|3n_4)qx`Tl#a^wHw`Q z>-^^L{mI?>j=1%|*ZP>h_BV;|dam?+uk`Zv{uO`iW1#Z2(D}aB`klh|P?qpqoAJWf z`Q`8Zs>%3Xo$GA$?sq;mU@Rq&y zug&0D0^{ zj_kohJU!L);%lLk<^nbDRbE)%-xAicH?t!uNXruC-!SN_fM7Z z*XH|?y7h^*^^&{wv(Nd|{p`i-~t=JknlH)?_!_vZKw0oR`;C%00mS@L_t&-8KuF6QyYl_$MN5n&Q2!6 z;0^;U?k>SYq3-Uksk?hSZO>ijTsgnz?%wDA=e*4(uvrMuyZ8BM7M`}@D*ZoRd~5{- zMoRT{wJZag?}2w$oxTQR%{Dmsa*1^Nat6#!y^c9#%OCWqa zs0qnWoP<}`7MfI>r z6Y_l-K}CHZc67SH=JVJUkx?#d+sKll}v;`S=3 zAFfKFnrtk2hqrR_gsCW_gM5wqB}X+ObeV|mya8F#;2BveHetJ1pb2lWT;taBg&amN z(0xU=Fzl6W6_!F%jxm0$7;}^YIR<*M97$Hh5OgY{YYUduh8+LmkYX0mt2p1pc5}Hb zzz$hzMzK}P5%gzPDe4<+mcw%op4x%sZczC^inQ@fEI$iFnjy#E8C2AEZpm>0SlHBn zrJ=G9%g+C#V_9GSEud14Pr0V3bn4{Dg*2&tJ(HXnP-q35lVcuNWlJT;kfRq~mgIQ_ zm%FBh5jWT^$MZmeB8(IucR2MgK(TC< zz->7$Q>};w7RoUn{EB$@Q=lv;C8vP*jbT|*ffhOLGa^g9&l{5C7@*LFkuVX3l0sf0 z(jI@`GYk~T@jPj=tl@3NDFrV288=Tx4dYVw1B>J^0=~tP^7yM9p}Dxd-HF>#Lyp&3 zDrrBhirO=GSy~n`cN#apH%d%%Uhe9Z#1t;u^zAxD_3?AbTuF&+!IeN(HV~-&-G`>6 z5n^shGE)E0=LL4;0Hc4Dt&+7;7hy#iYqQR_hK%#z`%tz9V$R4`1bko^d*%kVES4?k z>yVx%O)f?;e4>aJAnSXF0q+7?j6;x-ESD6Yw2sUQxg-Hk%CZaCAZ-H<%W@02E0z!FPBnB$qLw+GRUR)OJ(xO0t=& zsLu=8Wyq!4k0ogS~BE3Wt4$ysG zZb?k?6S>vke@$_INKUC-c9VH+b2hdWzdzp05xG2)L671M{Dy`K#n~9(ill-UUb;}! zW=ISCJfb*Fg_O&!B%P~<9G}o@DBfn41T`VJn)Mz{@^l8ZnotCJa#;hv(1cvV$(rIm zzLzwvovbdoR9&K6<5rP5UkQ{m^s!>hoiAvT(&PDxS?Hx*iFmeA{FxrYx~)8?#0tW^ zWoTBRM)sSU#{4_vX;zQX{6N!6f_a+7cNsmV89YZyon~~to9mj1xt6kg%^)?vqng>q zW>&XpS}&IItf^VNn?v`jbEdHc8uB%(wj)f>UtX_=acW-DG?v$Es{a9pD(%AZbcBrn O000016.07.28_k8s_visual_diagrams \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/module_01_cluster.svg b/docs/tutorials/getting-started/public/images/module_01_cluster.svg new file mode 100644 index 0000000000..054a9f78eb --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_01_cluster.svg @@ -0,0 +1,467 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_02.svg b/docs/tutorials/getting-started/public/images/module_02.svg new file mode 100644 index 0000000000..7742de99e2 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_02.svg @@ -0,0 +1 @@ +16.07.28_k8s_visual_diagrams \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/module_02_first_app.svg b/docs/tutorials/getting-started/public/images/module_02_first_app.svg new file mode 100644 index 0000000000..a382554bff --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_02_first_app.svg @@ -0,0 +1,576 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_03.svg b/docs/tutorials/getting-started/public/images/module_03.svg new file mode 100644 index 0000000000..7873332414 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_03.svg @@ -0,0 +1 @@ +16.07.28_k8s_visual_diagrams \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/module_03_nodes.svg b/docs/tutorials/getting-started/public/images/module_03_nodes.svg new file mode 100644 index 0000000000..0c7e61a980 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_03_nodes.svg @@ -0,0 +1,521 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_03_pods.svg b/docs/tutorials/getting-started/public/images/module_03_pods.svg new file mode 100644 index 0000000000..b63f415f30 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_03_pods.svg @@ -0,0 +1,484 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_04.svg b/docs/tutorials/getting-started/public/images/module_04.svg new file mode 100644 index 0000000000..0e37631afa --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_04.svg @@ -0,0 +1 @@ +16.07.28_k8s_visual_diagrams \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/module_04_labels.svg b/docs/tutorials/getting-started/public/images/module_04_labels.svg new file mode 100644 index 0000000000..31cd8638a1 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_04_labels.svg @@ -0,0 +1,710 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_04_services.svg b/docs/tutorials/getting-started/public/images/module_04_services.svg new file mode 100644 index 0000000000..a971ad95dd --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_04_services.svg @@ -0,0 +1,463 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_05.svg b/docs/tutorials/getting-started/public/images/module_05.svg new file mode 100644 index 0000000000..ef209965b9 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_05.svg @@ -0,0 +1 @@ +16.07.28_k8s_visual_diagrams \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/module_05_scaling1.svg b/docs/tutorials/getting-started/public/images/module_05_scaling1.svg new file mode 100644 index 0000000000..45458cf88b --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_05_scaling1.svg @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_05_scaling2.svg b/docs/tutorials/getting-started/public/images/module_05_scaling2.svg new file mode 100644 index 0000000000..53971c5a21 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_05_scaling2.svg @@ -0,0 +1,395 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_06.svg b/docs/tutorials/getting-started/public/images/module_06.svg new file mode 100644 index 0000000000..411455d721 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_06.svg @@ -0,0 +1 @@ +16.07.28_k8s_visual_diagrams \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/module_06_rollingupdates1.svg b/docs/tutorials/getting-started/public/images/module_06_rollingupdates1.svg new file mode 100644 index 0000000000..53971c5a21 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_06_rollingupdates1.svg @@ -0,0 +1,395 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_06_rollingupdates2.svg b/docs/tutorials/getting-started/public/images/module_06_rollingupdates2.svg new file mode 100644 index 0000000000..9773502d20 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_06_rollingupdates2.svg @@ -0,0 +1,543 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_06_rollingupdates3.svg b/docs/tutorials/getting-started/public/images/module_06_rollingupdates3.svg new file mode 100644 index 0000000000..15bd6e6033 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_06_rollingupdates3.svg @@ -0,0 +1,493 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_06_rollingupdates4.svg b/docs/tutorials/getting-started/public/images/module_06_rollingupdates4.svg new file mode 100644 index 0000000000..a326317a50 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_06_rollingupdates4.svg @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/nav_point.png b/docs/tutorials/getting-started/public/images/nav_point.png new file mode 100644 index 0000000000000000000000000000000000000000..f9873cf9ac407f21f4b23cbd5b51fc875193746d GIT binary patch literal 1223 zcma))Sy0ng7{vo>X&JEuSzKCWC|WH{tqRy`p+pj56i``&p}`ugK`SVWN|mApN=n$Y zid7U80mCNLAYui-Q-v&Juj1)Me!XXWgX>huO z-F)oj!#N#p>DZS6cY;iKW`daoW;VRCaeyEPth-?4z&i(r2y(&B#ZdwL1UP;l{&@(< zN6-TVKg8)j5b_8=6(Y0<=Zg?tjEE9&OAsYQbSYxXaIp-(mf=zbE>|MH0#_<=tr`i{ zxKWLy8r-bGty-i!Luwt;>X9x&Rs*scakmjUV&sbP`*R4Ikk>T#6a~$A*n+}VJZ?iV zK|4y?@uVF>f)12*qMSg2icVBYP)*Q<+Lx&9Mnf+e`q0=1F+o3`_v5btG!39-2yMf7 zF#^eJbdBPr6g@KZjA3vbLlYP#c!QBiyq?796r@uapT@Wx6LL(>U`l~$1>}mk-8{3Q9FpDyRqr)M~uTLC9D9WFj{kPB=Tckjyq&?{Ri#9`ZSIG>97+6`Pz=P*_?~ zS>O7iXJBx6WK=4ZjZaR?59``uKOPBfzjUtxudeosdUp}?XlN{sHMcwsDlCt_y zYs1l9QyoVR(ig9^2^5cCj2jDa)$aC56KUdQ2l7FOxHx#?olckcexd zQT4IotHq_$R%3x@ZbWg?J*nk!Rf!f)vImn5$L#g*nXayG&9-BbfBBy3`-$e(pFf=3 z6lONSeUB`v+O|GG<4S-f**N4v{Eu8O4a>%LkDWQ^JZP!cGxYj<7fLBtuKP!Sy0(0M zpc(H}&1Q#4t>jY%jhYvD!do0egT3LG*$a(Q>}m15B7Qk*FW+QmKyAG2wku68=*{NI zE_S(-y;hCH?ugj8?Q5@^VDgE^jR_5p78p=sZz;r4!>Z8cPrOLLb?C{ToW*sl}+hQK= z_c$KBjLTZa>fW_ZU*W-6shOx(TJ^y~6AfLGUOqp;#q_LK=S?jQTVbF7)`{tFd={~m i2daa-g)f#Q$rre@{j~*te_9ejBQa=B)ZFa{!u|nY&k9li literal 0 HcmV?d00001 diff --git a/docs/tutorials/getting-started/public/images/nav_point.svg b/docs/tutorials/getting-started/public/images/nav_point.svg new file mode 100644 index 0000000000..42a6ae4bd5 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/nav_point.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/nav_point_active.png b/docs/tutorials/getting-started/public/images/nav_point_active.png new file mode 100644 index 0000000000000000000000000000000000000000..f288046b6f65738a570f8a1220787a1e8906bdfd GIT binary patch literal 506 zcmV)SCFfjs0dMdN zOSp)|xPKe-1BbbUHT=X2jCahB<9W=lMSbBg)0&TA7f(>jsINucZmgRw0%iscY~cY$ z^E7SKXsp}9r|9?JFgNiP-?7l6F0T^YjecJ+p9kg|Ht`L&`UL2v+u^Z^*9F_!f7=C-{K<7X3 z240l}vmAacopl5$BhU@3b`G8elLmTwKp@+A96p&aGy}Du_&}csY+e|O5A \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/nav_point_sub.svg b/docs/tutorials/getting-started/public/images/nav_point_sub.svg new file mode 100644 index 0000000000..f3f731c1c4 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/nav_point_sub.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/quiz_false.png b/docs/tutorials/getting-started/public/images/quiz_false.png new file mode 100644 index 0000000000000000000000000000000000000000..028242c2ea1f8f8e1725666180883fa84b51ec26 GIT binary patch literal 2531 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 KH*Z4v{`EiX^j{AE literal 0 HcmV?d00001 diff --git a/docs/tutorials/getting-started/public/images/quiz_true.png b/docs/tutorials/getting-started/public/images/quiz_true.png new file mode 100644 index 0000000000000000000000000000000000000000..0573d9312e3e7b011b2307443cd4cb8d02b93640 GIT binary patch literal 2556 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 literal 0 HcmV?d00001 diff --git a/docs/tutorials/getting-started/public/images/twitter.png b/docs/tutorials/getting-started/public/images/twitter.png new file mode 100644 index 0000000000000000000000000000000000000000..ec490d7a9e2cb48ce31acb50f08f7f7ff0e00d48 GIT binary patch literal 3846 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 OyQO2OU2((y+5Z8e{CfTX literal 0 HcmV?d00001 diff --git a/docs/tutorials/getting-started/scale-app.html b/docs/tutorials/getting-started/scale-app.html new file mode 100644 index 0000000000..9a4a1406db --- /dev/null +++ b/docs/tutorials/getting-started/scale-app.html @@ -0,0 +1,58 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+

Module overview

+
    +
  • Scaling an app with Kubectl
  • +
+

+
+
+
+

What you need to know first

+

+ What are Deployments
+ What are Services +

+
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/scale-interactive.html b/docs/tutorials/getting-started/scale-interactive.html new file mode 100644 index 0000000000..ea0de03c48 --- /dev/null +++ b/docs/tutorials/getting-started/scale-interactive.html @@ -0,0 +1,49 @@ +--- +--- + + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+
+
+
+ To interact with the Terminal, please use the desktop/tablet version +
+
+
+
+ + + + +
+ + + +
+ + + diff --git a/docs/tutorials/getting-started/scale-intro.html b/docs/tutorials/getting-started/scale-intro.html new file mode 100644 index 0000000000..b36757d755 --- /dev/null +++ b/docs/tutorials/getting-started/scale-intro.html @@ -0,0 +1,124 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+ +
+
+

In the previous modules we created a Deployment, and then exposed it publicly via a Service . The Deployment created only one Pod for running our application. When traffic increases, we will need to scale the application to keep up with user demand.

+ +

Scaling is accomplished by changing the number of replicas in a Deployment

+ +
+
+
+

Summary:

+
    +
  • Scaling a Deployment
  • +
+
+
+

You can create from the start a Deployment with multiple instances using the --replicas parameter for the kubectl run command

+
+
+
+
+ +
+
+

Scaling overview

+
+
+ +
+
+
+ +
+
+ +
+ +
+
+ +

Scaling up a Deployment will ensure new Pods are created and scheduled to Nodes with available resources. Scaling down will reduce the number of Pods to the new desired state. Kubernetes also supports autoscaling of Pods, but it is outside of the scope of this tutorial. Scaling to zero is also possible, and it will terminate all Pods of the specified Deployment.

+ +

Running multiple instances of an application will require a way to distribute the traffic to all of them. Services have an integrated load-balancer that will distribute network traffic to all Pods of an exposed Deployment. Services will monitor continuously the running Pods using endpoints, to ensure the traffic is sent only to available Pods.

+ +
+
+
+

Scaling is accomplished by changing the number of replicas in a Deployment.

+
+
+
+ +
+ +
+
+

Once you have multiple instances of an Application running, you would be able to do Rolling updates without downtime. We’ll cover that in the next module. Now, let’s go to the online terminal and scale our application.

+
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/update-app.html b/docs/tutorials/getting-started/update-app.html new file mode 100644 index 0000000000..d5d9f05c95 --- /dev/null +++ b/docs/tutorials/getting-started/update-app.html @@ -0,0 +1,60 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+

Module overview

+
    +
  • Performing Rolling Updates with Kubectl
  • +
+

+
+
+
+

What you need to know first

+

+ What are Deployments
+ What is Scaling +

+
+
+
+ + + + + +
+ + + +
+ + + diff --git a/docs/tutorials/getting-started/update-interactive.html b/docs/tutorials/getting-started/update-interactive.html new file mode 100644 index 0000000000..13da0fc43d --- /dev/null +++ b/docs/tutorials/getting-started/update-interactive.html @@ -0,0 +1,42 @@ +--- +--- + + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+
+
+
+ To interact with the Terminal, please use the desktop/tablet version +
+
+
+
+ + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/update-intro.html b/docs/tutorials/getting-started/update-intro.html new file mode 100644 index 0000000000..0d3a3b2cfe --- /dev/null +++ b/docs/tutorials/getting-started/update-intro.html @@ -0,0 +1,139 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+ +
+
+

Users expect applications to be available all the time and developers are expected to deploy new versions of them several times a day. In Kubernetes this is done with rolling updates. Rolling updates allows Deployments to occur with zero downtime by incrementally updating Pods instances with new ones. The new Pods will be scheduled on Nodes with available resources.

+ +

In the previous module we scaled our application to run multiple instances. This is a requirement for performing updates without affecting application availability. By default, the maximum number of Pods that can be unavailable during the update and the maximum number of new Pods that can be created, is one. Both options can be configured to either numbers or percentages (of Pods). + In Kubernetes, updates are versioned and any Deployment update can be reverted to a previously (stable) version.

+ +
+
+
+

Summary:

+
    +
  • Updating an app
  • +
+
+
+

Rolling updates allows Deployments update with zero downtime by incrementally updating Pods instances with new ones.

+
+
+
+
+ +
+
+

Rolling updates overview

+
+
+
+
+
+ +
+
+
+ +
+
+ +

Similar to application Scaling, If a Deployment is exposed publicly, the Service will load-balance the traffic only to available Pods during the update. An available Pod is an instance that is available to the users of the application.

+ +

Rolling updates allow the following actions:

+
    +
  • Promote an application from one environment to another (via container image updates)
  • +
  • Rollback to previous versions
  • +
  • Continuous Integration and Continuous Delivery of applications with zero downtime
  • + +
+ +
+
+
+

If a Deployment is exposed publicly, the Service will load-balance the traffic only to available Pods during the update.

+
+
+
+ +
+ +
+
+

In the following interactive tutorial we’ll update our application to a new version, and also perform a rollback.

+
+
+
+ + + + + +
+ +
+ + + From cbb82d292bd223934e4a22be3d02f880fcdabd05 Mon Sep 17 00:00:00 2001 From: steveperry-53 Date: Sat, 10 Sep 2016 22:16:28 -0700 Subject: [PATCH 02/21] Integrate bootcamp into Kubernetes docs. --- _data/globals.yml | 3 +- _data/tutorials.yml | 54 + _layouts/docwithnav.html | 87 +- .../getting-started/cluster-interactive.html | 46 + .../getting-started/cluster-intro.html | 110 + .../getting-started/create-cluster.html | 53 + .../tutorials/getting-started/deploy-app.html | 58 + .../getting-started/deploy-interactive.html | 49 + .../getting-started/deploy-intro.html | 112 + .../getting-started/explore-app.html | 59 + .../getting-started/explore-interactive.html | 49 + .../getting-started/explore-intro.html | 146 + .../tutorials/getting-started/expose-app.html | 60 + .../getting-started/expose-interactive.html | 47 + .../getting-started/expose-intro.html | 140 + docs/tutorials/getting-started/index.html | 103 + .../getting-started/public/css/styles.css | 10274 ++++++++++++++++ .../public/images/badge-01.svg | 1 + .../public/images/badge-02.svg | 1 + .../public/images/badge-03.svg | 1 + .../public/images/badge-04.svg | 1 + .../public/images/badge-05.svg | 1 + .../public/images/badge-06.svg | 1 + .../public/images/badge-07.svg | 1 + .../public/images/badge-08.svg | 1 + .../public/images/badge-09.svg | 1 + .../getting-started/public/images/badge-1.png | Bin 0 -> 7369 bytes .../getting-started/public/images/dislike.svg | 1 + .../getting-started/public/images/like.svg | 1 + .../getting-started/public/images/logo.png | Bin 0 -> 11473 bytes .../getting-started/public/images/logo.svg | 1 + .../getting-started/public/images/logo_2.svg | 1 + .../public/images/logo_mobile.png | Bin 0 -> 2084 bytes .../public/images/module_01.svg | 1 + .../public/images/module_01_cluster.svg | 467 + .../public/images/module_02.svg | 1 + .../public/images/module_02_first_app.svg | 576 + .../public/images/module_03.svg | 1 + .../public/images/module_03_nodes.svg | 521 + .../public/images/module_03_pods.svg | 484 + .../public/images/module_04.svg | 1 + .../public/images/module_04_labels.svg | 710 ++ .../public/images/module_04_services.svg | 463 + .../public/images/module_05.svg | 1 + .../public/images/module_05_scaling1.svg | 313 + .../public/images/module_05_scaling2.svg | 395 + .../public/images/module_06.svg | 1 + .../images/module_06_rollingupdates1.svg | 395 + .../images/module_06_rollingupdates2.svg | 543 + .../images/module_06_rollingupdates3.svg | 493 + .../images/module_06_rollingupdates4.svg | 508 + .../public/images/nav_point.png | Bin 0 -> 1223 bytes .../public/images/nav_point.svg | 1 + .../public/images/nav_point_active.png | Bin 0 -> 506 bytes .../public/images/nav_point_active.svg | 1 + .../public/images/nav_point_sub.svg | 1 + .../public/images/quiz_false.png | Bin 0 -> 2531 bytes .../public/images/quiz_true.png | Bin 0 -> 2556 bytes .../getting-started/public/images/twitter.png | Bin 0 -> 3846 bytes docs/tutorials/getting-started/scale-app.html | 58 + .../getting-started/scale-interactive.html | 49 + .../getting-started/scale-intro.html | 124 + .../tutorials/getting-started/update-app.html | 60 + .../getting-started/update-interactive.html | 42 + .../getting-started/update-intro.html | 139 + 65 files changed, 17766 insertions(+), 46 deletions(-) create mode 100644 _data/tutorials.yml create mode 100644 docs/tutorials/getting-started/cluster-interactive.html create mode 100644 docs/tutorials/getting-started/cluster-intro.html create mode 100644 docs/tutorials/getting-started/create-cluster.html create mode 100644 docs/tutorials/getting-started/deploy-app.html create mode 100644 docs/tutorials/getting-started/deploy-interactive.html create mode 100644 docs/tutorials/getting-started/deploy-intro.html create mode 100644 docs/tutorials/getting-started/explore-app.html create mode 100644 docs/tutorials/getting-started/explore-interactive.html create mode 100644 docs/tutorials/getting-started/explore-intro.html create mode 100644 docs/tutorials/getting-started/expose-app.html create mode 100644 docs/tutorials/getting-started/expose-interactive.html create mode 100644 docs/tutorials/getting-started/expose-intro.html create mode 100644 docs/tutorials/getting-started/index.html create mode 100644 docs/tutorials/getting-started/public/css/styles.css create mode 100644 docs/tutorials/getting-started/public/images/badge-01.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-02.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-03.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-04.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-05.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-06.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-07.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-08.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-09.svg create mode 100644 docs/tutorials/getting-started/public/images/badge-1.png create mode 100644 docs/tutorials/getting-started/public/images/dislike.svg create mode 100644 docs/tutorials/getting-started/public/images/like.svg create mode 100644 docs/tutorials/getting-started/public/images/logo.png create mode 100644 docs/tutorials/getting-started/public/images/logo.svg create mode 100644 docs/tutorials/getting-started/public/images/logo_2.svg create mode 100644 docs/tutorials/getting-started/public/images/logo_mobile.png create mode 100644 docs/tutorials/getting-started/public/images/module_01.svg create mode 100644 docs/tutorials/getting-started/public/images/module_01_cluster.svg create mode 100644 docs/tutorials/getting-started/public/images/module_02.svg create mode 100644 docs/tutorials/getting-started/public/images/module_02_first_app.svg create mode 100644 docs/tutorials/getting-started/public/images/module_03.svg create mode 100644 docs/tutorials/getting-started/public/images/module_03_nodes.svg create mode 100644 docs/tutorials/getting-started/public/images/module_03_pods.svg create mode 100644 docs/tutorials/getting-started/public/images/module_04.svg create mode 100644 docs/tutorials/getting-started/public/images/module_04_labels.svg create mode 100644 docs/tutorials/getting-started/public/images/module_04_services.svg create mode 100644 docs/tutorials/getting-started/public/images/module_05.svg create mode 100644 docs/tutorials/getting-started/public/images/module_05_scaling1.svg create mode 100644 docs/tutorials/getting-started/public/images/module_05_scaling2.svg create mode 100644 docs/tutorials/getting-started/public/images/module_06.svg create mode 100644 docs/tutorials/getting-started/public/images/module_06_rollingupdates1.svg create mode 100644 docs/tutorials/getting-started/public/images/module_06_rollingupdates2.svg create mode 100644 docs/tutorials/getting-started/public/images/module_06_rollingupdates3.svg create mode 100644 docs/tutorials/getting-started/public/images/module_06_rollingupdates4.svg create mode 100644 docs/tutorials/getting-started/public/images/nav_point.png create mode 100644 docs/tutorials/getting-started/public/images/nav_point.svg create mode 100644 docs/tutorials/getting-started/public/images/nav_point_active.png create mode 100644 docs/tutorials/getting-started/public/images/nav_point_active.svg create mode 100644 docs/tutorials/getting-started/public/images/nav_point_sub.svg create mode 100644 docs/tutorials/getting-started/public/images/quiz_false.png create mode 100644 docs/tutorials/getting-started/public/images/quiz_true.png create mode 100644 docs/tutorials/getting-started/public/images/twitter.png create mode 100644 docs/tutorials/getting-started/scale-app.html create mode 100644 docs/tutorials/getting-started/scale-interactive.html create mode 100644 docs/tutorials/getting-started/scale-intro.html create mode 100644 docs/tutorials/getting-started/update-app.html create mode 100644 docs/tutorials/getting-started/update-interactive.html create mode 100644 docs/tutorials/getting-started/update-intro.html diff --git a/_data/globals.yml b/_data/globals.yml index fd3be92a16..dd96f60706 100644 --- a/_data/globals.yml +++ b/_data/globals.yml @@ -1,5 +1,6 @@ tocs: - guides +- tutorials - reference - samples -- support \ No newline at end of file +- support diff --git a/_data/tutorials.yml b/_data/tutorials.yml new file mode 100644 index 0000000000..ddeb55cc7b --- /dev/null +++ b/_data/tutorials.yml @@ -0,0 +1,54 @@ +bigheader: "Tutorials" +toc: +- title: Tutorials + path: /docs/tutorials/getting-started/ +- title: Getting Started + section: + - title: 1. Create a Cluster + section: + - title: Creating a Cluster + path: /docs/tutorials/getting-started/create-cluster/ + - title: Using Minikube to Create a Cluster + path: /docs/tutorials/getting-started/cluster-intro/ + - title: Interactive Tutorial - Creating a Cluster + path: /docs/tutorials/getting-started/cluster-interactive/ + - title: 2. Deploy an App + section: + - title: Deploying an App + path: /docs/tutorials/getting-started/deploy-app/ + - title: Using kubectl to Create a Deployment + path: /docs/tutorials/getting-started/deploy-intro/ + - title: Interactive Tutorial - Deploying an App + path: /docs/tutorials/getting-started/deploy-interactive/ + - title: 3. Explore Your App + section: + - title: Exploring Your App + path: /docs/tutorials/getting-started/explore-app/ + - title: Viewing Pods and Nodes + path: /docs/tutorials/getting-started/explore-intro/ + - title: Interactive Tutorial - Exploring Your App + path: /docs/tutorials/getting-started/explore-interactive/ + - title: 4. Expose Your App Publicly + section: + - title: Exposing Your App Publicly + path: /docs/tutorials/getting-started/expose-app/ + - title: Using a Service to Expose Your App + path: /docs/tutorials/getting-started/expose-intro/ + - title: Interactive Tutorial - Exposing Your App + path: /docs/tutorials/getting-started/expose-interactive/ + - title: 5. Scale Your App + section: + - title: Scaling Your App + path: /docs/tutorials/getting-started/scale-app/ + - title: Running Multiple Instances of Your App + path: /docs/tutorials/getting-started/scale-intro/ + - title: Interactive Tutorial - Scaling Your App + path: /docs/tutorials/getting-started/scale-interactive/ + - title: 6. Update Your App + section: + - title: Updating Your App + path: /docs/tutorials/getting-started/update-app/ + - title: Performing a Rolling Update + path: /docs/tutorials/getting-started/update-intro/ + - title: Interactive Tutorial - Updating Your App + path: /docs/tutorials/getting-started/update-interactive/ diff --git a/_layouts/docwithnav.html b/_layouts/docwithnav.html index c4405630f3..66e4eb6c90 100755 --- a/_layouts/docwithnav.html +++ b/_layouts/docwithnav.html @@ -7,48 +7,45 @@
-

{{ site.data[foundTOC].bigheader }}

-
{{ site.data[foundTOC].abstract }}
-
- - -
+

{{ site.data[foundTOC].bigheader }}

+
{{ site.data[foundTOC].abstract }}
+
+ + +
-
+
{% assign tree = site.data[foundTOC].toc %}{% include tree.html %}
- -
-
+ +
+

Edit This Page

- {% if notitle != "true" %}

{{ title }}

{% endif %} - {{ content }} + {% if notitle != "true" %}

{{ title }}

{% endif %} + {{ content }}

Analytics - {% if page.url != "/404.html" && page.url != "/docs/search/" %}

- - Create Issue - {% endif %} -
+ {% if page.url != "/404.html" and page.url != "/docs/search/" %}
+ {% endif %} +
{% include footer.html %} @@ -56,23 +53,21 @@ @@ -80,3 +75,5 @@ +Contact GitHub API Training Shop Blog About +© 2016 GitHub, Inc. Terms Privacy Security Status Help diff --git a/docs/tutorials/getting-started/cluster-interactive.html b/docs/tutorials/getting-started/cluster-interactive.html new file mode 100644 index 0000000000..6af54cb0e6 --- /dev/null +++ b/docs/tutorials/getting-started/cluster-interactive.html @@ -0,0 +1,46 @@ +--- +--- + + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+
+
+
+ To interact with the Terminal, please use the desktop/tablet version +
+
+
+ + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/cluster-intro.html b/docs/tutorials/getting-started/cluster-intro.html new file mode 100644 index 0000000000..c3a479cabd --- /dev/null +++ b/docs/tutorials/getting-started/cluster-intro.html @@ -0,0 +1,110 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+ +
+
+

+ Kubernetes coordinates a highly available cluster of computers that are connected to work as a single unit. The abstractions in Kubernetes allow you to deploy containerized applications to a cluster without tying them specifically to individual machines. To make use of this new model of deployment, applications need to be packaged in a way that decouples them from individual hosts: they need to be containerized. Containerized applications are more flexible and available than in past deployment models, where applications were installed directly onto specific machines as packages deeply integrated into the host. Kubernetes automates the distribution and scheduling of application containers across a cluster in a more efficient way. Kubernetes is an open-source platform and is production-ready. +

+

A Kubernetes cluster consists of two types of resources: +

    +
  • The Master coordinates the cluster
  • +
  • Nodes are the workers that run applications
  • +
+

+
+ +
+
+

Summary:

+
    +
  • Kubernetes cluster
  • +
  • Minikube
  • +
+
+
+

+ Kubernetes is a production-grade, open-source platform that orchestrates the placement (scheduling) and execution of application containers within and across computer clusters. +

+
+
+
+
+ +
+
+

Cluster Diagram

+
+
+ +
+
+

+
+
+
+ +
+
+

The Master is responsible for managing the cluster. The master coordinates all activity in your cluster, such as scheduling applications, maintaining applications' desired state, scaling applications, and rolling out new updates.

+

A node is a VM or a physical computer that serves as a worker machine in a Kubernetes cluster. Each node has a Kubelet, which is an agent for managing the node and communicating with the Kubernetes master. The node should also have tools for handling container operations, such as Docker or rkt. A Kubernetes cluster that handles production traffic should have a minimum of three nodes.

+ +
+
+
+

Masters manage the cluster and the nodes are used to host the running applications.

+
+
+
+ +
+
+

When you deploy applications on Kubernetes, you tell the master to start the application containers. The master schedules the containers to run on the cluster's nodes. The nodes communicate with the master using the Kubernetes API, which the master exposes. End users can also use the Kubernetes API directly to interact with the cluster.

+ +

A Kubernetes cluster can be deployed on either physical or virtual machines. To get started with Kubernetes development, you can use minikube. Minikube is a is a lightweight Kubernetes implementation that creates a VM on your local machine and deploys a simple cluster containing only one node. Minikube is available for Linux, Mac OS and Windows systems. The minikube CLI provides basic bootstrapping operations for working with your cluster, including start, stop, status, and delete. For this bootcamp, however, you'll use a provided online terminal with minikube pre-installed.

+ +

Now that you know what Kubernetes is, let’s go to the online tutorial and start our first cluster!

+ +
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/create-cluster.html b/docs/tutorials/getting-started/create-cluster.html new file mode 100644 index 0000000000..29135e7a9f --- /dev/null +++ b/docs/tutorials/getting-started/create-cluster.html @@ -0,0 +1,53 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+

Module overview

+
    +
  • learn what a Kubernetes cluster is
  • +
  • learn what minikube is
  • +
  • start a Kubernetes cluster using an online terminal
  • +
+

+
+
+
+

What you need to know first

+

+ Before you do this tutorial, you should be familiar with Linux containers. +

+
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/deploy-app.html b/docs/tutorials/getting-started/deploy-app.html new file mode 100644 index 0000000000..2267fae038 --- /dev/null +++ b/docs/tutorials/getting-started/deploy-app.html @@ -0,0 +1,58 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+

Module overview

+
    +
  • Learn about application Deployments
  • +
  • Deploy your first app on Kubernetes with Kubectl
  • +
+

+
+
+
+

What you need to know first

+

+ How to start a Kubernetes cluster with minikube
+

+
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/deploy-interactive.html b/docs/tutorials/getting-started/deploy-interactive.html new file mode 100644 index 0000000000..49d8c5c96e --- /dev/null +++ b/docs/tutorials/getting-started/deploy-interactive.html @@ -0,0 +1,49 @@ +--- +--- + + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+
+
+
+ To interact with the Terminal, please use the desktop/tablet version +
+ +
+
+ +
+ + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/deploy-intro.html b/docs/tutorials/getting-started/deploy-intro.html new file mode 100644 index 0000000000..fd6adf0804 --- /dev/null +++ b/docs/tutorials/getting-started/deploy-intro.html @@ -0,0 +1,112 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+ +
+
+

+ Once you have a running Kubernetes cluster, you can deploy your containerized applications on top of it. To do so, you create a Kubernetes Deployment. The Deployment is responsible for creating and updating instances of your application. Once you've created a Deployment, the Kubernetes master schedules the application instances that the Deployment creates onto individual Nodes in the cluster. +

+ +

Once the application instances are created, a Kubernetes Deployment Controller continuously monitors those instances. The Deployment controller replaces an instance if the Node hosting it goes down or it is deleted. This provides a self-healing mechanism to address machine failure or maintenance.

+ +

In a pre-orchestration world, installation scripts would often be used to start applications, but they did not allow recovery from machine failure. By both creating your application instances and keeping them running across Nodes, Kubernetes Deployments provide a fundamentally different approach to application management.

+ +
+ +
+
+

Summary:

+
    +
  • Deployments
  • +
  • Kubectl
  • +
+
+
+

+ A Deployment is responsible for creating and updating instances of your application +

+
+
+
+
+ +
+
+

Deploying your first app on Kubernetes

+
+
+ +
+
+

+
+
+
+ +
+
+ +

You can create and manage a Deployment by using the Kubernetes command line interface, Kubectl. Kubectl uses the Kubernetes API to interact with the cluster. In this module, you'll learn the most common Kubectl commands needed to create Deployments that run your applications on a Kubernetes cluster.

+ +

When you create a Deployment, you'll need to specify the container image for your application and the number of replicas that you want to run. You can change that information later by updating your Deployment; Modules 5 and 6 of the bootcamp discuss how you can update your Deployments.

+ + + + +
+
+
+

Applications need to be packaged into one of the supported container formats in order to be deployed on Kubernetes

+
+
+
+ +
+
+

For our first Deployment, we’ll use a NodeJS application packaged in a Docker container. The source code and the Dockerfile are available in the GitHub repository for the Kubernetes Bootcamp.

+ +

Now that you know what Deployments are, let’s go to the online tutorial and deploy our first app!

+ +
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/explore-app.html b/docs/tutorials/getting-started/explore-app.html new file mode 100644 index 0000000000..f3ae4ead91 --- /dev/null +++ b/docs/tutorials/getting-started/explore-app.html @@ -0,0 +1,59 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+

Module overview

+
    +
  • Learn about Kubernetes Pods
  • +
  • Learn about Kubernetes Nodes
  • +
  • Troubleshoot deployed applications
  • +
+

+
+
+
+

What you need to know first

+

+ What are Deployments
+ How to deploy applications on Kubernetes +

+
+
+
+ + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/explore-interactive.html b/docs/tutorials/getting-started/explore-interactive.html new file mode 100644 index 0000000000..812ced442f --- /dev/null +++ b/docs/tutorials/getting-started/explore-interactive.html @@ -0,0 +1,49 @@ +--- +--- + + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+
+
+ +
+ To interact with the Terminal, please use the desktop/tablet version +
+ +
+
+
+ + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/explore-intro.html b/docs/tutorials/getting-started/explore-intro.html new file mode 100644 index 0000000000..4b6f13e165 --- /dev/null +++ b/docs/tutorials/getting-started/explore-intro.html @@ -0,0 +1,146 @@ +--- +--- + + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+ +
+
+

Pods

+

When you created a Deployment in Module 2, Kubernetes created a Pod to host your application instance. A Pod is Kubernetes abstraction that represents a group of one or more application containers (such as Docker or rkt), and some shared resources for those containers. Those resources include:

+
    +
  • Shared storage, as Volumes
  • +
  • Networking, as a unique cluster IP address
  • +
  • Information about how to run each container, such as the container image version or specific ports to use
  • +
+

A Pod models an application-specific “logical host” and can contain different application containers which are relatively tightly coupled. For example, a Pod might include both the container with your Node.js app as well as a different container that feeds the data to be published by the Node.js webserver. The containers in a Pod share an IP Address and port space, are always co-located and co-scheduled, and run in a shared context on the same Node.

+ +

Pods are the atomic unit on the Kubernetes platform. When we create a Deployment on Kubernetes, that Deployment creates Pods with containers inside them (as opposed to creating containers directly). Each Pod is tied to the Node where it is scheduled, and remains there until termination (according to restart policy) or deletion. In case of a Node failure, identical Pods are scheduled on other available Nodes in the cluster.

+ +
+
+
+

Summary:

+
    +
  • Pods
  • +
  • Nodes
  • +
  • Kubectl main commands
  • +
+
+
+

+ A Pod is a group of one or more application containers (such as Docker or rkt) and includes shared storage (volumes), IP address and information about how to run them. +

+
+
+
+
+ +
+
+

Pods overview

+
+
+ +
+
+

+
+
+
+ +
+
+

Nodes

+

A Pod always runs on a Node. A Node is a worker machine in Kubernetes and may be either a virtual or a physical machine, depending on the cluster. Each Node is managed by the Master. A Node can have multiple pods, and the Kubernetes master automatically handles scheduling the pods across the Nodes in the cluster. The Master's automatic scheduling takes into account the available resources on each Node.

+ +

Every Kubernetes Node runs at least:

+
    +
  • Kubelet, a process responsible for communication between the Kubernetes Master and the Nodes; it manages the Pods and the containers running on a machine.
  • +
  • A container runtime (like Docker, rkt) responsible for pulling the container image from a registry, unpacking the container, and running the application.
  • +
+ +
+
+
+

Containers should only be scheduled together in a single Pod if they are tightly coupled and need to share resources such as disk.

+
+
+
+ +
+ +
+
+

Node overview

+
+
+ +
+
+

+
+
+
+ +
+
+

Troubleshooting with kubectl

+

In Module 2, you used Kubectl command-line interface. You'll continue to use it in Module 3 to get information about deployed applications and their environments. The most common operations can be done with the following kubectl commands:

+
    +
  • kubectl get - list resources
  • +
  • kubectl describe - show detailed information about a resource
  • +
  • kubectl logs - print the logs from a container in a pod
  • +
  • kubectl exec - execute a command on a container in a pod
  • +
+ +

You can use these commands to see when applications were deployed, what their current status is, where they are running and what their configuration is.

+ +

Now that we know more about our cluster components and the command line, let’s explore our application.

+ +
+
+
+

A node is a worker machine in Kubernetes and may be a VM or physical machine, depending on the cluster. Multiple Pods can run on one Node.

+
+
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/expose-app.html b/docs/tutorials/getting-started/expose-app.html new file mode 100644 index 0000000000..593f34794e --- /dev/null +++ b/docs/tutorials/getting-started/expose-app.html @@ -0,0 +1,60 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+

Module overview

+
    +
  • Services
  • +
  • Learn about Kubernetes Labels
  • +
  • Exposing applications outside Kubernetes
  • +
+

+
+
+
+

What you need to know first

+

+ How to deploy apps on Kubernetes
+ How to troubleshoot applications with Kubectl +

+
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/expose-interactive.html b/docs/tutorials/getting-started/expose-interactive.html new file mode 100644 index 0000000000..d2d61e87c4 --- /dev/null +++ b/docs/tutorials/getting-started/expose-interactive.html @@ -0,0 +1,47 @@ +--- +--- + + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+
+
+
+ To interact with the Terminal, please use the desktop/tablet version +
+
+
+
+ + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/expose-intro.html b/docs/tutorials/getting-started/expose-intro.html new file mode 100644 index 0000000000..9f5bf74b83 --- /dev/null +++ b/docs/tutorials/getting-started/expose-intro.html @@ -0,0 +1,140 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+ +
+
+

While Pods do have their own unique IP across the cluster, those IP’s are not exposed outside Kubernetes. Taking into account that over time Pods may be terminated, deleted or replaced by other Pods, we need a way to let other Pods and applications automatically discover each other. Kubernetes addresses this by grouping Pods in Services. A Kubernetes Service is an abstraction layer which defines a logical set of Pods and enables external traffic exposure, load balancing and service discovery for those Pods.

+ +

This abstraction will allow us to expose Pods to traffic originating from outside the cluster. Services have their own unique cluster-private IP address and expose a port to receive traffic. If you choose to expose the service outside the cluster, the options are:

+
    +
  • LoadBalancer - provides a public IP address (what you would typically use when you run Kubernetes on GKE or AWS)
  • +
  • NodePort - exposes the Service on the same port on each Node of the cluster using NAT (available on all Kubernetes clusters, and in Minikube)
  • +
+
+
+
+

Summary:

+
    +
  • Exposing Pods to external traffic
  • +
  • Load balancing traffic across multiple Pods
  • +
  • Using labels
  • +
+
+
+

+ A Kubernetes Service is an abstraction layer which defines a logical set of Pods and enables external traffic exposure, load balancing and service discovery for those Pods. +

+
+
+
+
+ +
+
+

Services overview

+
+
+ +
+
+

+
+
+
+ +
+
+ +

A Service provides load balancing of traffic across the contained set of Pods. This is useful when a service is created to group all Pods from a specific Deployment (our application will make use of this in the next module, when we’ll have multiple instances running).

+ +

Services are also responsible for service-discovery within the cluster (covered in Module 6). This will for example allow a frontend service (like a web server) to receive traffic from a backend service (like a database) without worrying about Pods.

+ +

Services match a set of Pods using Label Selectors, a grouping primitive that allows logical operation on Labels.

+ +
+
+
+

You can create a Service when you start a Deployment by adding --expose as a parameter for the kubectl run command

+
+
+
+ +
+ +
+
+

Labels are key/value pairs that are attached to objects, such as Pods and you can think of them as hashtags from social media. They are used to organize related objects in a way meaningful to the users like:

+
    +
  • Production environment (production, test, dev)
  • +
  • Application version (beta, v1.3)
  • +
  • Type of service/server (frontend, backend, database)
  • +
+
+
+
+

Labels are key/value pairs that are attached to objects

+
+
+
+
+
+
+

Labels

+
+
+ +
+
+

+
+
+
+
+
+ +

Labels can be attached to objects at the creation time or later and can be modified at any time. + The kubectl run command sets some default Labels/Label Selectors on the new Pods/ Deployment. The link between Labels and Label Selectors defines the relationship between the Deployment and the Pods it creates.

+ +

Let’s expose now our application with the help of a Service, and apply some new Labels.

+
+
+
+ + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/index.html b/docs/tutorials/getting-started/index.html new file mode 100644 index 0000000000..9762cae49a --- /dev/null +++ b/docs/tutorials/getting-started/index.html @@ -0,0 +1,103 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+

Getting Started with Kubernetes

+

By the end of this tutorial you will understand what Kubernetes does. You will also learn how to deploy, scale, update and debug containerized applications on a Kubernetes cluster using an interactive online terminal.

+
+
+ +
+ +
+
+

Why Kubernetes?

+

Today users expect applications to be available 24/7, while developers expect to deploy new versions of those applications several times a day. The way we build software is moving in this direction, enabling applications to be released and updated in an easy and fast way without downtime. We also need to be able to scale application in line with the user demand and we expect them to make intelligent use of the available resources. Kubernetes is a platform designed to meet those requirements, using the experience accumulated by Google in this area, combined with best-of-breed ideas from the community.

+
+
+ +
+

Getting Started Modules

+
+ +
+
+ + +
+
+
+ +
+ +
+ +
+
+
+ + +
+
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/public/css/styles.css b/docs/tutorials/getting-started/public/css/styles.css new file mode 100644 index 0000000000..654544f1dd --- /dev/null +++ b/docs/tutorials/getting-started/public/css/styles.css @@ -0,0 +1,10274 @@ +@charset 'UTF-8'; +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 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; + + -ms-text-size-adjust: 100%; + -webkit-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 +{ + font-size: 2em; + + margin: .67em 0; +} + +mark +{ + color: #000; + background: #ff0; +} + +small +{ + font-size: 80%; +} + +sub, +sup +{ + font-size: 75%; + line-height: 0; + + position: relative; + + vertical-align: baseline; +} + +sup +{ + top: -.5em; +} + +sub +{ + bottom: -.25em; +} + +img +{ + border: 0; +} + +svg:not(:root) +{ + overflow: hidden; +} + +figure +{ + margin: 1em 40px; +} + +hr +{ + box-sizing: content-box; + height: 0; +} + +pre +{ + overflow: auto; +} + +code, +kbd, +pre, +samp +{ + font-family: monospace, monospace; + font-size: 1em; +} + +button, +input, +optgroup, +select, +textarea +{ + font: inherit; + + margin: 0; + + color: inherit; +} + +button +{ + overflow: visible; +} + +button, +select +{ + text-transform: none; +} + +button, +html input[type='button'], +input[type='reset'], +input[type='submit'] +{ + cursor: pointer; + + -webkit-appearance: button; +} + +button[disabled], +html input[disabled] +{ + cursor: default; +} + +button::-moz-focus-inner, +input::-moz-focus-inner +{ + padding: 0; + + border: 0; +} + +input +{ + line-height: normal; +} + +input[type='checkbox'], +input[type='radio'] +{ + 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'] +{ + box-sizing: content-box; + + -webkit-appearance: textfield; +} + +input[type='search']::-webkit-search-cancel-button, +input[type='search']::-webkit-search-decoration +{ + -webkit-appearance: none; +} + +fieldset +{ + margin: 0 2px; + padding: .35em .625em .75em; + + 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; + background: transparent !important; + box-shadow: none !important; + text-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; + } +} + +* +{ + box-sizing: border-box; +} + +*:before, +*:after +{ + box-sizing: border-box; +} + +html +{ + font-size: 10px; + + -webkit-tap-highlight-color: transparent; +} + +body +{ + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.42857; + + color: #333; + background-color: #fff; +} + +input, +button, +select, +textarea +{ + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +a +{ + text-decoration: none; + + color: #337ab7; +} +a:hover, +a:focus +{ + text-decoration: underline; + + color: #23527c; +} +a:focus +{ + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +figure +{ + margin: 0; +} + +img +{ + vertical-align: middle; +} + +.img-responsive +{ + display: block; + + max-width: 100%; + height: auto; +} + +.img-rounded +{ + border-radius: 6px; +} + +.img-thumbnail +{ + line-height: 1.42857; + + display: inline-block; + + max-width: 100%; + height: auto; + padding: 4px; + + -webkit-transition: all .2s ease-in-out; + transition: all .2s ease-in-out; + + border: 1px solid #ddd; + border-radius: 4px; + background-color: #fff; +} + +.img-circle +{ + border-radius: 50%; +} + +hr +{ + margin-top: 20px; + margin-bottom: 20px; + + border: 0; + border-top: 1px solid #eee; +} + +.sr-only +{ + position: absolute; + + overflow: hidden; + clip: rect(0, 0, 0, 0); + + width: 1px; + height: 1px; + margin: -1px; + padding: 0; + + border: 0; +} + +.sr-only-focusable:active, +.sr-only-focusable:focus +{ + position: static; + + overflow: visible; + clip: auto; + + width: auto; + height: auto; + margin: 0; +} + +[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.1; + + color: inherit; +} +h1 small, +h1 .small, +h2 small, +h2 .small, +h3 small, +h3 .small, +h4 small, +h4 .small, +h5 small, +h5 .small, +h6 small, +h6 .small, +.h1 small, +.h1 .small, +.h2 small, +.h2 .small, +.h3 small, +.h3 .small, +.h4 small, +.h4 .small, +.h5 small, +.h5 .small, +.h6 small, +.h6 .small +{ + font-weight: normal; + line-height: 1; + + color: #777; +} + +h1, +.h1, +h2, +.h2, +h3, +.h3 +{ + margin-top: 20px; + margin-bottom: 10px; +} +h1 small, +h1 .small, +.h1 small, +.h1 .small, +h2 small, +h2 .small, +.h2 small, +.h2 .small, +h3 small, +h3 .small, +.h3 small, +.h3 .small +{ + font-size: 65%; +} + +h4, +.h4, +h5, +.h5, +h6, +.h6 +{ + margin-top: 10px; + margin-bottom: 10px; +} +h4 small, +h4 .small, +.h4 small, +.h4 .small, +h5 small, +h5 .small, +.h5 small, +.h5 .small, +h6 small, +h6 .small, +.h6 small, +.h6 .small +{ + font-size: 75%; +} + +h1, +.h1 +{ + font-size: 36px; +} + +h2, +.h2 +{ + font-size: 30px; +} + +h3, +.h3 +{ + font-size: 24px; +} + +h4, +.h4 +{ + font-size: 18px; +} + +h5, +.h5 +{ + font-size: 14px; +} + +h6, +.h6 +{ + font-size: 12px; +} + +p +{ + margin: 0 0 10px; +} + +.lead +{ + font-size: 16px; + font-weight: 300; + line-height: 1.4; + + margin-bottom: 20px; +} +@media (min-width: 768px) +{ + .lead + { + font-size: 21px; + } +} + +small, +.small +{ + font-size: 85%; +} + +mark, +.mark +{ + padding: .2em; + + background-color: #fcf8e3; +} + +.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, +.initialism +{ + text-transform: uppercase; +} + +.text-capitalize +{ + text-transform: capitalize; +} + +.text-muted +{ + color: #777; +} + +.text-primary +{ + color: #337ab7; +} + +a.text-primary:hover, +a.text-primary:focus +{ + color: #286090; +} + +.text-success +{ + color: #3c763d; +} + +a.text-success:hover, +a.text-success:focus +{ + color: #2b542c; +} + +.text-info +{ + color: #31708f; +} + +a.text-info:hover, +a.text-info:focus +{ + color: #245269; +} + +.text-warning +{ + color: #8a6d3b; +} + +a.text-warning:hover, +a.text-warning:focus +{ + color: #66512c; +} + +.text-danger +{ + color: #a94442; +} + +a.text-danger:hover, +a.text-danger:focus +{ + color: #843534; +} + +.bg-primary +{ + color: #fff; +} + +.bg-primary +{ + background-color: #337ab7; +} + +a.bg-primary:hover, +a.bg-primary:focus +{ + background-color: #286090; +} + +.bg-success +{ + background-color: #dff0d8; +} + +a.bg-success:hover, +a.bg-success:focus +{ + background-color: #c1e2b3; +} + +.bg-info +{ + background-color: #d9edf7; +} + +a.bg-info:hover, +a.bg-info:focus +{ + background-color: #afd9ee; +} + +.bg-warning +{ + background-color: #fcf8e3; +} + +a.bg-warning:hover, +a.bg-warning:focus +{ + background-color: #f7ecb5; +} + +.bg-danger +{ + background-color: #f2dede; +} + +a.bg-danger:hover, +a.bg-danger:focus +{ + background-color: #e4b9b9; +} + +.page-header +{ + margin: 40px 0 20px; + padding-bottom: 9px; + + border-bottom: 1px solid #eee; +} + +ul, +ol +{ + margin-top: 0; + margin-bottom: 10px; +} +ul ul, +ul ol, +ol ul, +ol ol +{ + margin-bottom: 0; +} + +.list-unstyled +{ + padding-left: 0; + + list-style: none; +} + +.list-inline +{ + margin-left: -5px; + padding-left: 0; + + list-style: none; +} +.list-inline > li +{ + display: inline-block; + + padding-right: 5px; + padding-left: 5px; +} + +dl +{ + margin-top: 0; + margin-bottom: 20px; +} + +dt, +dd +{ + line-height: 1.42857; +} + +dt +{ + font-weight: bold; +} + +dd +{ + margin-left: 0; +} + +.dl-horizontal dd:before, +.dl-horizontal dd:after +{ + display: table; + + content: ' '; +} + +.dl-horizontal dd:after +{ + clear: both; +} + +@media (min-width: 768px) +{ + .dl-horizontal dt + { + float: left; + clear: left; + overflow: hidden; + + width: 160px; + + text-align: right; + white-space: nowrap; + text-overflow: ellipsis; + } + .dl-horizontal dd + { + margin-left: 180px; + } +} + +abbr[title], +abbr[data-original-title] +{ + cursor: help; + + border-bottom: 1px dotted #777; +} + +.initialism +{ + font-size: 90%; +} + +blockquote +{ + font-size: 17.5px; + + margin: 0 0 20px; + padding: 10px 20px; + + border-left: 5px solid #eee; +} +blockquote p:last-child, +blockquote ul:last-child, +blockquote ol:last-child +{ + margin-bottom: 0; +} +blockquote footer, +blockquote small, +blockquote .small +{ + font-size: 80%; + line-height: 1.42857; + + display: block; + + color: #777; +} +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 #eee; + border-left: 0; +} +.blockquote-reverse footer:before, +.blockquote-reverse small:before, +.blockquote-reverse .small:before, +blockquote.pull-right footer:before, +blockquote.pull-right small:before, +blockquote.pull-right .small:before +{ + content: ''; +} +.blockquote-reverse footer:after, +.blockquote-reverse small:after, +.blockquote-reverse .small:after, +blockquote.pull-right footer:after, +blockquote.pull-right small:after, +blockquote.pull-right .small:after +{ + content: '\00A0 \2014'; +} + +address +{ + font-style: normal; + line-height: 1.42857; + + margin-bottom: 20px; +} + +code, +kbd, +pre, +samp +{ + font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; +} + +code +{ + font-size: 90%; + + padding: 2px 4px; + + color: #c7254e; + border-radius: 4px; + background-color: #f9f2f4; +} + +kbd +{ + font-size: 90%; + + padding: 2px 4px; + + color: #fff; + border-radius: 3px; + background-color: #333; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25); +} +kbd kbd +{ + font-size: 100%; + font-weight: bold; + + padding: 0; + + box-shadow: none; +} + +pre +{ + font-size: 13px; + line-height: 1.42857; + + display: block; + + margin: 0 0 10px; + padding: 9.5px; + + word-wrap: break-word; + word-break: break-all; + + color: #333; + border: 1px solid #ccc; + border-radius: 4px; + background-color: #f5f5f5; +} +pre code +{ + font-size: inherit; + + padding: 0; + + white-space: pre-wrap; + + color: inherit; + border-radius: 0; + background-color: transparent; +} + +.pre-scrollable +{ + overflow-y: scroll; + + max-height: 340px; +} + +.container +{ + margin-right: auto; + margin-left: auto; + padding-right: 15px; + padding-left: 15px; +} +.container:before, +.container:after +{ + display: table; + + content: ' '; +} +.container:after +{ + clear: both; +} +@media (min-width: 768px) +{ + .container + { + width: 750px; + } +} +@media (min-width: 992px) +{ + .container + { + width: 970px; + } +} +@media (min-width: 1200px) +{ + .container + { + width: 1170px; + } +} + +.container-fluid +{ + margin-right: auto; + margin-left: auto; + padding-right: 15px; + padding-left: 15px; +} +.container-fluid:before, +.container-fluid:after +{ + display: table; + + content: ' '; +} +.container-fluid:after +{ + clear: both; +} + +.row +{ + margin-right: -15px; + margin-left: -15px; +} +.row:before, +.row:after +{ + display: table; + + content: ' '; +} +.row:after +{ + clear: both; +} + +.col-xs-1, +.col-sm-1, +.col-md-1, +.col-lg-1, +.col-xs-2, +.col-sm-2, +.col-md-2, +.col-lg-2, +.col-xs-3, +.col-sm-3, +.col-md-3, +.col-lg-3, +.col-xs-4, +.col-sm-4, +.col-md-4, +.col-lg-4, +.col-xs-5, +.col-sm-5, +.col-md-5, +.col-lg-5, +.col-xs-6, +.col-sm-6, +.col-md-6, +.col-lg-6, +.col-xs-7, +.col-sm-7, +.col-md-7, +.col-lg-7, +.col-xs-8, +.col-sm-8, +.col-md-8, +.col-lg-8, +.col-xs-9, +.col-sm-9, +.col-md-9, +.col-lg-9, +.col-xs-10, +.col-sm-10, +.col-md-10, +.col-lg-10, +.col-xs-11, +.col-sm-11, +.col-md-11, +.col-lg-11, +.col-xs-12, +.col-sm-12, +.col-md-12, +.col-lg-12 +{ + position: relative; + + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} + +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12 +{ + float: left; +} + +.col-xs-1 +{ + width: 8.33333%; +} + +.col-xs-2 +{ + width: 16.66667%; +} + +.col-xs-3 +{ + width: 25%; +} + +.col-xs-4 +{ + width: 33.33333%; +} + +.col-xs-5 +{ + width: 41.66667%; +} + +.col-xs-6 +{ + width: 50%; +} + +.col-xs-7 +{ + width: 58.33333%; +} + +.col-xs-8 +{ + width: 66.66667%; +} + +.col-xs-9 +{ + width: 75%; +} + +.col-xs-10 +{ + width: 83.33333%; +} + +.col-xs-11 +{ + width: 91.66667%; +} + +.col-xs-12 +{ + width: 100%; +} + +.col-xs-pull-0 +{ + right: auto; +} + +.col-xs-pull-1 +{ + right: 8.33333%; +} + +.col-xs-pull-2 +{ + right: 16.66667%; +} + +.col-xs-pull-3 +{ + right: 25%; +} + +.col-xs-pull-4 +{ + right: 33.33333%; +} + +.col-xs-pull-5 +{ + right: 41.66667%; +} + +.col-xs-pull-6 +{ + right: 50%; +} + +.col-xs-pull-7 +{ + right: 58.33333%; +} + +.col-xs-pull-8 +{ + right: 66.66667%; +} + +.col-xs-pull-9 +{ + right: 75%; +} + +.col-xs-pull-10 +{ + right: 83.33333%; +} + +.col-xs-pull-11 +{ + right: 91.66667%; +} + +.col-xs-pull-12 +{ + right: 100%; +} + +.col-xs-push-0 +{ + left: auto; +} + +.col-xs-push-1 +{ + left: 8.33333%; +} + +.col-xs-push-2 +{ + left: 16.66667%; +} + +.col-xs-push-3 +{ + left: 25%; +} + +.col-xs-push-4 +{ + left: 33.33333%; +} + +.col-xs-push-5 +{ + left: 41.66667%; +} + +.col-xs-push-6 +{ + left: 50%; +} + +.col-xs-push-7 +{ + left: 58.33333%; +} + +.col-xs-push-8 +{ + left: 66.66667%; +} + +.col-xs-push-9 +{ + left: 75%; +} + +.col-xs-push-10 +{ + left: 83.33333%; +} + +.col-xs-push-11 +{ + left: 91.66667%; +} + +.col-xs-push-12 +{ + left: 100%; +} + +.col-xs-offset-0 +{ + margin-left: 0; +} + +.col-xs-offset-1 +{ + margin-left: 8.33333%; +} + +.col-xs-offset-2 +{ + margin-left: 16.66667%; +} + +.col-xs-offset-3 +{ + margin-left: 25%; +} + +.col-xs-offset-4 +{ + margin-left: 33.33333%; +} + +.col-xs-offset-5 +{ + margin-left: 41.66667%; +} + +.col-xs-offset-6 +{ + margin-left: 50%; +} + +.col-xs-offset-7 +{ + margin-left: 58.33333%; +} + +.col-xs-offset-8 +{ + margin-left: 66.66667%; +} + +.col-xs-offset-9 +{ + margin-left: 75%; +} + +.col-xs-offset-10 +{ + margin-left: 83.33333%; +} + +.col-xs-offset-11 +{ + margin-left: 91.66667%; +} + +.col-xs-offset-12 +{ + margin-left: 100%; +} + +@media (min-width: 768px) +{ + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11, + .col-sm-12 + { + float: left; + } + .col-sm-1 + { + width: 8.33333%; + } + .col-sm-2 + { + width: 16.66667%; + } + .col-sm-3 + { + width: 25%; + } + .col-sm-4 + { + width: 33.33333%; + } + .col-sm-5 + { + width: 41.66667%; + } + .col-sm-6 + { + width: 50%; + } + .col-sm-7 + { + width: 58.33333%; + } + .col-sm-8 + { + width: 66.66667%; + } + .col-sm-9 + { + width: 75%; + } + .col-sm-10 + { + width: 83.33333%; + } + .col-sm-11 + { + width: 91.66667%; + } + .col-sm-12 + { + width: 100%; + } + .col-sm-pull-0 + { + right: auto; + } + .col-sm-pull-1 + { + right: 8.33333%; + } + .col-sm-pull-2 + { + right: 16.66667%; + } + .col-sm-pull-3 + { + right: 25%; + } + .col-sm-pull-4 + { + right: 33.33333%; + } + .col-sm-pull-5 + { + right: 41.66667%; + } + .col-sm-pull-6 + { + right: 50%; + } + .col-sm-pull-7 + { + right: 58.33333%; + } + .col-sm-pull-8 + { + right: 66.66667%; + } + .col-sm-pull-9 + { + right: 75%; + } + .col-sm-pull-10 + { + right: 83.33333%; + } + .col-sm-pull-11 + { + right: 91.66667%; + } + .col-sm-pull-12 + { + right: 100%; + } + .col-sm-push-0 + { + left: auto; + } + .col-sm-push-1 + { + left: 8.33333%; + } + .col-sm-push-2 + { + left: 16.66667%; + } + .col-sm-push-3 + { + left: 25%; + } + .col-sm-push-4 + { + left: 33.33333%; + } + .col-sm-push-5 + { + left: 41.66667%; + } + .col-sm-push-6 + { + left: 50%; + } + .col-sm-push-7 + { + left: 58.33333%; + } + .col-sm-push-8 + { + left: 66.66667%; + } + .col-sm-push-9 + { + left: 75%; + } + .col-sm-push-10 + { + left: 83.33333%; + } + .col-sm-push-11 + { + left: 91.66667%; + } + .col-sm-push-12 + { + left: 100%; + } + .col-sm-offset-0 + { + margin-left: 0; + } + .col-sm-offset-1 + { + margin-left: 8.33333%; + } + .col-sm-offset-2 + { + margin-left: 16.66667%; + } + .col-sm-offset-3 + { + margin-left: 25%; + } + .col-sm-offset-4 + { + margin-left: 33.33333%; + } + .col-sm-offset-5 + { + margin-left: 41.66667%; + } + .col-sm-offset-6 + { + margin-left: 50%; + } + .col-sm-offset-7 + { + margin-left: 58.33333%; + } + .col-sm-offset-8 + { + margin-left: 66.66667%; + } + .col-sm-offset-9 + { + margin-left: 75%; + } + .col-sm-offset-10 + { + margin-left: 83.33333%; + } + .col-sm-offset-11 + { + margin-left: 91.66667%; + } + .col-sm-offset-12 + { + margin-left: 100%; + } +} + +@media (min-width: 992px) +{ + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11, + .col-md-12 + { + float: left; + } + .col-md-1 + { + width: 8.33333%; + } + .col-md-2 + { + width: 16.66667%; + } + .col-md-3 + { + width: 25%; + } + .col-md-4 + { + width: 33.33333%; + } + .col-md-5 + { + width: 41.66667%; + } + .col-md-6 + { + width: 50%; + } + .col-md-7 + { + width: 58.33333%; + } + .col-md-8 + { + width: 66.66667%; + } + .col-md-9 + { + width: 75%; + } + .col-md-10 + { + width: 83.33333%; + } + .col-md-11 + { + width: 91.66667%; + } + .col-md-12 + { + width: 100%; + } + .col-md-pull-0 + { + right: auto; + } + .col-md-pull-1 + { + right: 8.33333%; + } + .col-md-pull-2 + { + right: 16.66667%; + } + .col-md-pull-3 + { + right: 25%; + } + .col-md-pull-4 + { + right: 33.33333%; + } + .col-md-pull-5 + { + right: 41.66667%; + } + .col-md-pull-6 + { + right: 50%; + } + .col-md-pull-7 + { + right: 58.33333%; + } + .col-md-pull-8 + { + right: 66.66667%; + } + .col-md-pull-9 + { + right: 75%; + } + .col-md-pull-10 + { + right: 83.33333%; + } + .col-md-pull-11 + { + right: 91.66667%; + } + .col-md-pull-12 + { + right: 100%; + } + .col-md-push-0 + { + left: auto; + } + .col-md-push-1 + { + left: 8.33333%; + } + .col-md-push-2 + { + left: 16.66667%; + } + .col-md-push-3 + { + left: 25%; + } + .col-md-push-4 + { + left: 33.33333%; + } + .col-md-push-5 + { + left: 41.66667%; + } + .col-md-push-6 + { + left: 50%; + } + .col-md-push-7 + { + left: 58.33333%; + } + .col-md-push-8 + { + left: 66.66667%; + } + .col-md-push-9 + { + left: 75%; + } + .col-md-push-10 + { + left: 83.33333%; + } + .col-md-push-11 + { + left: 91.66667%; + } + .col-md-push-12 + { + left: 100%; + } + .col-md-offset-0 + { + margin-left: 0; + } + .col-md-offset-1 + { + margin-left: 8.33333%; + } + .col-md-offset-2 + { + margin-left: 16.66667%; + } + .col-md-offset-3 + { + margin-left: 25%; + } + .col-md-offset-4 + { + margin-left: 33.33333%; + } + .col-md-offset-5 + { + margin-left: 41.66667%; + } + .col-md-offset-6 + { + margin-left: 50%; + } + .col-md-offset-7 + { + margin-left: 58.33333%; + } + .col-md-offset-8 + { + margin-left: 66.66667%; + } + .col-md-offset-9 + { + margin-left: 75%; + } + .col-md-offset-10 + { + margin-left: 83.33333%; + } + .col-md-offset-11 + { + margin-left: 91.66667%; + } + .col-md-offset-12 + { + margin-left: 100%; + } +} + +@media (min-width: 1200px) +{ + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11, + .col-lg-12 + { + float: left; + } + .col-lg-1 + { + width: 8.33333%; + } + .col-lg-2 + { + width: 16.66667%; + } + .col-lg-3 + { + width: 25%; + } + .col-lg-4 + { + width: 33.33333%; + } + .col-lg-5 + { + width: 41.66667%; + } + .col-lg-6 + { + width: 50%; + } + .col-lg-7 + { + width: 58.33333%; + } + .col-lg-8 + { + width: 66.66667%; + } + .col-lg-9 + { + width: 75%; + } + .col-lg-10 + { + width: 83.33333%; + } + .col-lg-11 + { + width: 91.66667%; + } + .col-lg-12 + { + width: 100%; + } + .col-lg-pull-0 + { + right: auto; + } + .col-lg-pull-1 + { + right: 8.33333%; + } + .col-lg-pull-2 + { + right: 16.66667%; + } + .col-lg-pull-3 + { + right: 25%; + } + .col-lg-pull-4 + { + right: 33.33333%; + } + .col-lg-pull-5 + { + right: 41.66667%; + } + .col-lg-pull-6 + { + right: 50%; + } + .col-lg-pull-7 + { + right: 58.33333%; + } + .col-lg-pull-8 + { + right: 66.66667%; + } + .col-lg-pull-9 + { + right: 75%; + } + .col-lg-pull-10 + { + right: 83.33333%; + } + .col-lg-pull-11 + { + right: 91.66667%; + } + .col-lg-pull-12 + { + right: 100%; + } + .col-lg-push-0 + { + left: auto; + } + .col-lg-push-1 + { + left: 8.33333%; + } + .col-lg-push-2 + { + left: 16.66667%; + } + .col-lg-push-3 + { + left: 25%; + } + .col-lg-push-4 + { + left: 33.33333%; + } + .col-lg-push-5 + { + left: 41.66667%; + } + .col-lg-push-6 + { + left: 50%; + } + .col-lg-push-7 + { + left: 58.33333%; + } + .col-lg-push-8 + { + left: 66.66667%; + } + .col-lg-push-9 + { + left: 75%; + } + .col-lg-push-10 + { + left: 83.33333%; + } + .col-lg-push-11 + { + left: 91.66667%; + } + .col-lg-push-12 + { + left: 100%; + } + .col-lg-offset-0 + { + margin-left: 0; + } + .col-lg-offset-1 + { + margin-left: 8.33333%; + } + .col-lg-offset-2 + { + margin-left: 16.66667%; + } + .col-lg-offset-3 + { + margin-left: 25%; + } + .col-lg-offset-4 + { + margin-left: 33.33333%; + } + .col-lg-offset-5 + { + margin-left: 41.66667%; + } + .col-lg-offset-6 + { + margin-left: 50%; + } + .col-lg-offset-7 + { + margin-left: 58.33333%; + } + .col-lg-offset-8 + { + margin-left: 66.66667%; + } + .col-lg-offset-9 + { + margin-left: 75%; + } + .col-lg-offset-10 + { + margin-left: 83.33333%; + } + .col-lg-offset-11 + { + margin-left: 91.66667%; + } + .col-lg-offset-12 + { + margin-left: 100%; + } +} + +table +{ + background-color: transparent; +} + +caption +{ + padding-top: 8px; + padding-bottom: 8px; + + text-align: left; + + color: #777; +} + +th +{ + text-align: left; +} + +.table +{ + width: 100%; + max-width: 100%; + margin-bottom: 20px; +} +.table > thead > tr > th, +.table > thead > tr > td, +.table > tbody > tr > th, +.table > tbody > tr > td, +.table > tfoot > tr > th, +.table > tfoot > tr > td +{ + line-height: 1.42857; + + padding: 8px; + + vertical-align: top; + + border-top: 1px solid #ddd; +} +.table > thead > tr > th +{ + vertical-align: bottom; + + border-bottom: 2px solid #ddd; +} +.table > caption + thead > tr:first-child > th, +.table > caption + thead > tr:first-child > td, +.table > colgroup + thead > tr:first-child > th, +.table > colgroup + thead > tr:first-child > td, +.table > thead:first-child > tr:first-child > th, +.table > thead:first-child > tr:first-child > td +{ + border-top: 0; +} +.table > tbody + tbody +{ + border-top: 2px solid #ddd; +} +.table .table +{ + background-color: #fff; +} + +.table-condensed > thead > tr > th, +.table-condensed > thead > tr > td, +.table-condensed > tbody > tr > th, +.table-condensed > tbody > tr > td, +.table-condensed > tfoot > tr > th, +.table-condensed > tfoot > tr > td +{ + padding: 5px; +} + +.table-bordered +{ + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > th, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > th, +.table-bordered > tfoot > tr > td +{ + border: 1px solid #ddd; +} +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td +{ + border-bottom-width: 2px; +} + +.table-striped > tbody > tr:nth-of-type(odd) +{ + background-color: #f9f9f9; +} + +.table-hover > tbody > tr:hover +{ + background-color: #f5f5f5; +} + +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 > thead > tr > th.active, +.table > thead > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr > td.active, +.table > tbody > tr > th.active, +.table > tbody > tr.active > td, +.table > tbody > tr.active > th, +.table > tfoot > tr > td.active, +.table > tfoot > tr > th.active, +.table > tfoot > tr.active > td, +.table > tfoot > tr.active > th +{ + background-color: #f5f5f5; +} + +.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: #e8e8e8; +} + +.table > thead > tr > td.success, +.table > thead > tr > th.success, +.table > thead > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr > td.success, +.table > tbody > tr > th.success, +.table > tbody > tr.success > td, +.table > tbody > tr.success > th, +.table > tfoot > tr > td.success, +.table > tfoot > tr > th.success, +.table > tfoot > tr.success > td, +.table > tfoot > tr.success > th +{ + background-color: #dff0d8; +} + +.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: #d0e9c6; +} + +.table > thead > tr > td.info, +.table > thead > tr > th.info, +.table > thead > tr.info > td, +.table > thead > tr.info > th, +.table > tbody > tr > td.info, +.table > tbody > tr > th.info, +.table > tbody > tr.info > td, +.table > tbody > tr.info > th, +.table > tfoot > tr > td.info, +.table > tfoot > tr > th.info, +.table > tfoot > tr.info > td, +.table > tfoot > tr.info > th +{ + background-color: #d9edf7; +} + +.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: #c4e3f3; +} + +.table > thead > tr > td.warning, +.table > thead > tr > th.warning, +.table > thead > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr > td.warning, +.table > tbody > tr > th.warning, +.table > tbody > tr.warning > td, +.table > tbody > tr.warning > th, +.table > tfoot > tr > td.warning, +.table > tfoot > tr > th.warning, +.table > tfoot > tr.warning > td, +.table > tfoot > tr.warning > th +{ + background-color: #fcf8e3; +} + +.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: #faf2cc; +} + +.table > thead > tr > td.danger, +.table > thead > tr > th.danger, +.table > thead > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr > td.danger, +.table > tbody > tr > th.danger, +.table > tbody > tr.danger > td, +.table > tbody > tr.danger > th, +.table > tfoot > tr > td.danger, +.table > tfoot > tr > th.danger, +.table > tfoot > tr.danger > td, +.table > tfoot > tr.danger > th +{ + background-color: #f2dede; +} + +.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: #ebcccc; +} + +.table-responsive +{ + overflow-x: auto; + + min-height: .01%; +} +@media screen and (max-width: 767px) +{ + .table-responsive + { + overflow-y: hidden; + + width: 100%; + margin-bottom: 15px; + + border: 1px solid #ddd; + + -ms-overflow-style: -ms-autohiding-scrollbar; + } + .table-responsive > .table + { + margin-bottom: 0; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > th, + .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 > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > th: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 > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > th: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 > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > td + { + border-bottom: 0; + } +} + +fieldset +{ + min-width: 0; + margin: 0; + padding: 0; + + border: 0; +} + +legend +{ + font-size: 21px; + line-height: inherit; + + display: block; + + width: 100%; + margin-bottom: 20px; + padding: 0; + + color: #333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +label +{ + font-weight: bold; + + display: inline-block; + + max-width: 100%; + margin-bottom: 5px; +} + +input[type='search'] +{ + box-sizing: border-box; +} + +input[type='radio'], +input[type='checkbox'] +{ + line-height: normal; + + margin: 4px 0 0; + margin-top: 1px \9; +} + +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: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +output +{ + font-size: 14px; + line-height: 1.42857; + + display: block; + + padding-top: 7px; + + color: #555; +} + +.form-control +{ + font-size: 14px; + line-height: 1.42857; + + display: block; + + width: 100%; + height: 34px; + padding: 6px 12px; + + -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s; + + color: #555; + border: 1px solid #ccc; + border-radius: 4px; + background-color: #fff; + background-image: none; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.form-control:focus +{ + border-color: #66afe9; + outline: 0; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px rgba(102, 175, 233, .6); +} +.form-control::-moz-placeholder +{ + opacity: 1; + color: #999; +} +.form-control:-ms-input-placeholder +{ + color: #999; +} +.form-control::-webkit-input-placeholder +{ + color: #999; +} +.form-control::-ms-expand +{ + border: 0; + background-color: transparent; +} +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control +{ + opacity: 1; + background-color: #eee; +} +.form-control[disabled], +fieldset[disabled] .form-control +{ + cursor: not-allowed; +} + +textarea.form-control +{ + height: auto; +} + +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: 34px; + } + input[type='date'].input-sm, + .input-group-sm > input[type='date'].form-control, + .input-group-sm > input[type='date'].input-group-addon, + .input-group-sm > .input-group-btn > input[type='date'].btn, + .input-group-sm input[type='date'], + input[type='time'].input-sm, + .input-group-sm > input[type='time'].form-control, + .input-group-sm > input[type='time'].input-group-addon, + .input-group-sm > .input-group-btn > input[type='time'].btn, + .input-group-sm + input[type='time'], + input[type='datetime-local'].input-sm, + .input-group-sm > input[type='datetime-local'].form-control, + .input-group-sm > input[type='datetime-local'].input-group-addon, + .input-group-sm > .input-group-btn > input[type='datetime-local'].btn, + .input-group-sm + input[type='datetime-local'], + input[type='month'].input-sm, + .input-group-sm > input[type='month'].form-control, + .input-group-sm > input[type='month'].input-group-addon, + .input-group-sm > .input-group-btn > input[type='month'].btn, + .input-group-sm + input[type='month'] + { + line-height: 30px; + } + input[type='date'].input-lg, + .input-group-lg > input[type='date'].form-control, + .input-group-lg > input[type='date'].input-group-addon, + .input-group-lg > .input-group-btn > input[type='date'].btn, + .input-group-lg input[type='date'], + input[type='time'].input-lg, + .input-group-lg > input[type='time'].form-control, + .input-group-lg > input[type='time'].input-group-addon, + .input-group-lg > .input-group-btn > input[type='time'].btn, + .input-group-lg + input[type='time'], + input[type='datetime-local'].input-lg, + .input-group-lg > input[type='datetime-local'].form-control, + .input-group-lg > input[type='datetime-local'].input-group-addon, + .input-group-lg > .input-group-btn > input[type='datetime-local'].btn, + .input-group-lg + input[type='datetime-local'], + input[type='month'].input-lg, + .input-group-lg > input[type='month'].form-control, + .input-group-lg > input[type='month'].input-group-addon, + .input-group-lg > .input-group-btn > input[type='month'].btn, + .input-group-lg + input[type='month'] + { + line-height: 46px; + } +} + +.form-group +{ + margin-bottom: 15px; +} + +.radio, +.checkbox +{ + position: relative; + + display: block; + + margin-top: 10px; + margin-bottom: 10px; +} +.radio label, +.checkbox label +{ + font-weight: normal; + + min-height: 20px; + margin-bottom: 0; + padding-left: 20px; + + 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 +{ + font-weight: normal; + + position: relative; + + display: inline-block; + + margin-bottom: 0; + padding-left: 20px; + + cursor: pointer; + vertical-align: middle; +} + +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline +{ + margin-top: 0; + margin-left: 10px; +} + +input[type='radio'][disabled], +input[type='radio'].disabled, +fieldset[disabled] input[type='radio'], +input[type='checkbox'][disabled], +input[type='checkbox'].disabled, +fieldset[disabled] +input[type='checkbox'] +{ + cursor: not-allowed; +} + +.radio-inline.disabled, +fieldset[disabled] .radio-inline, +.checkbox-inline.disabled, +fieldset[disabled] +.checkbox-inline +{ + cursor: not-allowed; +} + +.radio.disabled label, +fieldset[disabled] .radio label, +.checkbox.disabled label, +fieldset[disabled] +.checkbox label +{ + cursor: not-allowed; +} + +.form-control-static +{ + min-height: 34px; + margin-bottom: 0; + padding-top: 7px; + padding-bottom: 7px; +} +.form-control-static.input-lg, +.input-group-lg > .form-control-static.form-control, +.input-group-lg > .form-control-static.input-group-addon, +.input-group-lg > .input-group-btn > .form-control-static.btn, +.form-control-static.input-sm, +.input-group-sm > .form-control-static.form-control, +.input-group-sm > .form-control-static.input-group-addon, +.input-group-sm > .input-group-btn > .form-control-static.btn +{ + padding-right: 0; + padding-left: 0; +} + +.input-sm, +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn +{ + font-size: 12px; + line-height: 1.5; + + height: 30px; + padding: 5px 10px; + + border-radius: 3px; +} + +select.input-sm, +.input-group-sm > select.form-control, +.input-group-sm > select.input-group-addon, +.input-group-sm > .input-group-btn > select.btn +{ + line-height: 30px; + + height: 30px; +} + +textarea.input-sm, +.input-group-sm > textarea.form-control, +.input-group-sm > textarea.input-group-addon, +.input-group-sm > .input-group-btn > textarea.btn, +select[multiple].input-sm, +.input-group-sm > select[multiple].form-control, +.input-group-sm > select[multiple].input-group-addon, +.input-group-sm > .input-group-btn > select[multiple].btn +{ + height: auto; +} + +.form-group-sm .form-control +{ + font-size: 12px; + line-height: 1.5; + + height: 30px; + padding: 5px 10px; + + border-radius: 3px; +} + +.form-group-sm select.form-control +{ + line-height: 30px; + + height: 30px; +} + +.form-group-sm textarea.form-control, +.form-group-sm select[multiple].form-control +{ + height: auto; +} + +.form-group-sm .form-control-static +{ + font-size: 12px; + line-height: 1.5; + + height: 30px; + min-height: 32px; + padding: 6px 10px; +} + +.input-lg, +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn +{ + font-size: 18px; + line-height: 1.33333; + + height: 46px; + padding: 10px 16px; + + border-radius: 6px; +} + +select.input-lg, +.input-group-lg > select.form-control, +.input-group-lg > select.input-group-addon, +.input-group-lg > .input-group-btn > select.btn +{ + line-height: 46px; + + height: 46px; +} + +textarea.input-lg, +.input-group-lg > textarea.form-control, +.input-group-lg > textarea.input-group-addon, +.input-group-lg > .input-group-btn > textarea.btn, +select[multiple].input-lg, +.input-group-lg > select[multiple].form-control, +.input-group-lg > select[multiple].input-group-addon, +.input-group-lg > .input-group-btn > select[multiple].btn +{ + height: auto; +} + +.form-group-lg .form-control +{ + font-size: 18px; + line-height: 1.33333; + + height: 46px; + padding: 10px 16px; + + border-radius: 6px; +} + +.form-group-lg select.form-control +{ + line-height: 46px; + + height: 46px; +} + +.form-group-lg textarea.form-control, +.form-group-lg select[multiple].form-control +{ + height: auto; +} + +.form-group-lg .form-control-static +{ + font-size: 18px; + line-height: 1.33333; + + height: 46px; + min-height: 38px; + padding: 11px 16px; +} + +.has-feedback +{ + position: relative; +} +.has-feedback .form-control +{ + padding-right: 42.5px; +} + +.form-control-feedback +{ + line-height: 34px; + + position: absolute; + z-index: 2; + top: 0; + right: 0; + + display: block; + + width: 34px; + height: 34px; + + text-align: center; + pointer-events: none; +} + +.input-lg + .form-control-feedback, +.input-group-lg > .form-control + .form-control-feedback, +.input-group-lg > .input-group-addon + .form-control-feedback, +.input-group-lg > .input-group-btn > .btn + .form-control-feedback, +.input-group-lg + .form-control-feedback, +.form-group-lg .form-control + .form-control-feedback +{ + line-height: 46px; + + width: 46px; + height: 46px; +} + +.input-sm + .form-control-feedback, +.input-group-sm > .form-control + .form-control-feedback, +.input-group-sm > .input-group-addon + .form-control-feedback, +.input-group-sm > .input-group-btn > .btn + .form-control-feedback, +.input-group-sm + .form-control-feedback, +.form-group-sm .form-control + .form-control-feedback +{ + line-height: 30px; + + width: 30px; + height: 30px; +} + +.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: #3c763d; +} + +.has-success .form-control +{ + border-color: #3c763d; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-success .form-control:focus +{ + border-color: #2b542c; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168; +} + +.has-success .input-group-addon +{ + color: #3c763d; + border-color: #3c763d; + background-color: #dff0d8; +} + +.has-success .form-control-feedback +{ + color: #3c763d; +} + +.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: #8a6d3b; +} + +.has-warning .form-control +{ + border-color: #8a6d3b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-warning .form-control:focus +{ + border-color: #66512c; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b; +} + +.has-warning .input-group-addon +{ + color: #8a6d3b; + border-color: #8a6d3b; + background-color: #fcf8e3; +} + +.has-warning .form-control-feedback +{ + color: #8a6d3b; +} + +.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: #a94442; +} + +.has-error .form-control +{ + border-color: #a94442; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075); +} +.has-error .form-control:focus +{ + border-color: #843534; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483; +} + +.has-error .input-group-addon +{ + color: #a94442; + border-color: #a94442; + background-color: #f2dede; +} + +.has-error .form-control-feedback +{ + color: #a94442; +} + +.has-feedback label ~ .form-control-feedback +{ + top: 25px; +} + +.has-feedback label.sr-only ~ .form-control-feedback +{ + top: 0; +} + +.help-block +{ + display: block; + + margin-top: 5px; + margin-bottom: 10px; + + color: #737373; +} + +@media (min-width: 768px) +{ + .form-inline .form-group + { + display: inline-block; + + margin-bottom: 0; + + vertical-align: middle; + } + .form-inline .form-control + { + display: inline-block; + + 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 +{ + margin-top: 0; + margin-bottom: 0; + padding-top: 7px; +} + +.form-horizontal .radio, +.form-horizontal .checkbox +{ + min-height: 27px; +} + +.form-horizontal .form-group +{ + margin-right: -15px; + margin-left: -15px; +} +.form-horizontal .form-group:before, +.form-horizontal .form-group:after +{ + display: table; + + content: ' '; +} +.form-horizontal .form-group:after +{ + clear: both; +} + +@media (min-width: 768px) +{ + .form-horizontal .control-label + { + margin-bottom: 0; + padding-top: 7px; + + text-align: right; + } +} + +.form-horizontal .has-feedback .form-control-feedback +{ + right: 15px; +} + +@media (min-width: 768px) +{ + .form-horizontal .form-group-lg .control-label + { + font-size: 18px; + + padding-top: 11px; + } +} + +@media (min-width: 768px) +{ + .form-horizontal .form-group-sm .control-label + { + font-size: 12px; + + padding-top: 6px; + } +} + +.btn +{ + font-size: 14px; + font-weight: normal; + line-height: 1.42857; + + display: inline-block; + + margin-bottom: 0; + padding: 6px 12px; + + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + text-align: center; + vertical-align: middle; + white-space: nowrap; + + border: 1px solid transparent; + border-radius: 4px; + background-image: none; + + -ms-touch-action: manipulation; + touch-action: manipulation; +} +.btn:focus, +.btn.focus, +.btn:active:focus, +.btn:active.focus, +.btn.active:focus, +.btn.active.focus +{ + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} +.btn:hover, +.btn:focus, +.btn.focus +{ + text-decoration: none; + + color: #333; +} +.btn:active, +.btn.active +{ + outline: 0; + background-image: none; + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn +{ + cursor: not-allowed; + + opacity: .65; + box-shadow: none; + + filter: alpha(opacity=65); +} + +a.btn.disabled, +fieldset[disabled] a.btn +{ + pointer-events: none; +} + +.btn-default +{ + color: #333; + border-color: #ccc; + background-color: #fff; +} +.btn-default:focus, +.btn-default.focus +{ + color: #333; + border-color: #8c8c8c; + background-color: #e6e6e6; +} +.btn-default:hover +{ + color: #333; + border-color: #adadad; + background-color: #e6e6e6; +} +.btn-default:active, +.btn-default.active, +.open > .btn-default.dropdown-toggle +{ + color: #333; + border-color: #adadad; + background-color: #e6e6e6; +} +.btn-default:active:hover, +.btn-default:active:focus, +.btn-default:active.focus, +.btn-default.active:hover, +.btn-default.active:focus, +.btn-default.active.focus, +.open > .btn-default.dropdown-toggle:hover, +.open > .btn-default.dropdown-toggle:focus, +.open > .btn-default.dropdown-toggle.focus +{ + color: #333; + border-color: #8c8c8c; + background-color: #d4d4d4; +} +.btn-default:active, +.btn-default.active, +.open > .btn-default.dropdown-toggle +{ + background-image: none; +} +.btn-default.disabled:hover, +.btn-default.disabled:focus, +.btn-default.disabled.focus, +.btn-default[disabled]:hover, +.btn-default[disabled]:focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default:hover, +fieldset[disabled] .btn-default:focus, +fieldset[disabled] .btn-default.focus +{ + border-color: #ccc; + background-color: #fff; +} +.btn-default .badge +{ + color: #fff; + background-color: #333; +} + +.btn-primary +{ + color: #fff; + border-color: #2e6da4; + background-color: #337ab7; +} +.btn-primary:focus, +.btn-primary.focus +{ + color: #fff; + border-color: #122b40; + background-color: #286090; +} +.btn-primary:hover +{ + color: #fff; + border-color: #204d74; + background-color: #286090; +} +.btn-primary:active, +.btn-primary.active, +.open > .btn-primary.dropdown-toggle +{ + color: #fff; + border-color: #204d74; + background-color: #286090; +} +.btn-primary:active:hover, +.btn-primary:active:focus, +.btn-primary:active.focus, +.btn-primary.active:hover, +.btn-primary.active:focus, +.btn-primary.active.focus, +.open > .btn-primary.dropdown-toggle:hover, +.open > .btn-primary.dropdown-toggle:focus, +.open > .btn-primary.dropdown-toggle.focus +{ + color: #fff; + border-color: #122b40; + background-color: #204d74; +} +.btn-primary:active, +.btn-primary.active, +.open > .btn-primary.dropdown-toggle +{ + background-image: none; +} +.btn-primary.disabled:hover, +.btn-primary.disabled:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled]:hover, +.btn-primary[disabled]:focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary:hover, +fieldset[disabled] .btn-primary:focus, +fieldset[disabled] .btn-primary.focus +{ + border-color: #2e6da4; + background-color: #337ab7; +} +.btn-primary .badge +{ + color: #337ab7; + background-color: #fff; +} + +.btn-success +{ + color: #fff; + border-color: #4cae4c; + background-color: #5cb85c; +} +.btn-success:focus, +.btn-success.focus +{ + color: #fff; + border-color: #255625; + background-color: #449d44; +} +.btn-success:hover +{ + color: #fff; + border-color: #398439; + background-color: #449d44; +} +.btn-success:active, +.btn-success.active, +.open > .btn-success.dropdown-toggle +{ + color: #fff; + border-color: #398439; + background-color: #449d44; +} +.btn-success:active:hover, +.btn-success:active:focus, +.btn-success:active.focus, +.btn-success.active:hover, +.btn-success.active:focus, +.btn-success.active.focus, +.open > .btn-success.dropdown-toggle:hover, +.open > .btn-success.dropdown-toggle:focus, +.open > .btn-success.dropdown-toggle.focus +{ + color: #fff; + border-color: #255625; + background-color: #398439; +} +.btn-success:active, +.btn-success.active, +.open > .btn-success.dropdown-toggle +{ + background-image: none; +} +.btn-success.disabled:hover, +.btn-success.disabled:focus, +.btn-success.disabled.focus, +.btn-success[disabled]:hover, +.btn-success[disabled]:focus, +.btn-success[disabled].focus, +fieldset[disabled] .btn-success:hover, +fieldset[disabled] .btn-success:focus, +fieldset[disabled] .btn-success.focus +{ + border-color: #4cae4c; + background-color: #5cb85c; +} +.btn-success .badge +{ + color: #5cb85c; + background-color: #fff; +} + +.btn-info +{ + color: #fff; + border-color: #46b8da; + background-color: #5bc0de; +} +.btn-info:focus, +.btn-info.focus +{ + color: #fff; + border-color: #1b6d85; + background-color: #31b0d5; +} +.btn-info:hover +{ + color: #fff; + border-color: #269abc; + background-color: #31b0d5; +} +.btn-info:active, +.btn-info.active, +.open > .btn-info.dropdown-toggle +{ + color: #fff; + border-color: #269abc; + background-color: #31b0d5; +} +.btn-info:active:hover, +.btn-info:active:focus, +.btn-info:active.focus, +.btn-info.active:hover, +.btn-info.active:focus, +.btn-info.active.focus, +.open > .btn-info.dropdown-toggle:hover, +.open > .btn-info.dropdown-toggle:focus, +.open > .btn-info.dropdown-toggle.focus +{ + color: #fff; + border-color: #1b6d85; + background-color: #269abc; +} +.btn-info:active, +.btn-info.active, +.open > .btn-info.dropdown-toggle +{ + background-image: none; +} +.btn-info.disabled:hover, +.btn-info.disabled:focus, +.btn-info.disabled.focus, +.btn-info[disabled]:hover, +.btn-info[disabled]:focus, +.btn-info[disabled].focus, +fieldset[disabled] .btn-info:hover, +fieldset[disabled] .btn-info:focus, +fieldset[disabled] .btn-info.focus +{ + border-color: #46b8da; + background-color: #5bc0de; +} +.btn-info .badge +{ + color: #5bc0de; + background-color: #fff; +} + +.btn-warning +{ + color: #fff; + border-color: #eea236; + background-color: #f0ad4e; +} +.btn-warning:focus, +.btn-warning.focus +{ + color: #fff; + border-color: #985f0d; + background-color: #ec971f; +} +.btn-warning:hover +{ + color: #fff; + border-color: #d58512; + background-color: #ec971f; +} +.btn-warning:active, +.btn-warning.active, +.open > .btn-warning.dropdown-toggle +{ + color: #fff; + border-color: #d58512; + background-color: #ec971f; +} +.btn-warning:active:hover, +.btn-warning:active:focus, +.btn-warning:active.focus, +.btn-warning.active:hover, +.btn-warning.active:focus, +.btn-warning.active.focus, +.open > .btn-warning.dropdown-toggle:hover, +.open > .btn-warning.dropdown-toggle:focus, +.open > .btn-warning.dropdown-toggle.focus +{ + color: #fff; + border-color: #985f0d; + background-color: #d58512; +} +.btn-warning:active, +.btn-warning.active, +.open > .btn-warning.dropdown-toggle +{ + background-image: none; +} +.btn-warning.disabled:hover, +.btn-warning.disabled:focus, +.btn-warning.disabled.focus, +.btn-warning[disabled]:hover, +.btn-warning[disabled]:focus, +.btn-warning[disabled].focus, +fieldset[disabled] .btn-warning:hover, +fieldset[disabled] .btn-warning:focus, +fieldset[disabled] .btn-warning.focus +{ + border-color: #eea236; + background-color: #f0ad4e; +} +.btn-warning .badge +{ + color: #f0ad4e; + background-color: #fff; +} + +.btn-danger +{ + color: #fff; + border-color: #d43f3a; + background-color: #d9534f; +} +.btn-danger:focus, +.btn-danger.focus +{ + color: #fff; + border-color: #761c19; + background-color: #c9302c; +} +.btn-danger:hover +{ + color: #fff; + border-color: #ac2925; + background-color: #c9302c; +} +.btn-danger:active, +.btn-danger.active, +.open > .btn-danger.dropdown-toggle +{ + color: #fff; + border-color: #ac2925; + background-color: #c9302c; +} +.btn-danger:active:hover, +.btn-danger:active:focus, +.btn-danger:active.focus, +.btn-danger.active:hover, +.btn-danger.active:focus, +.btn-danger.active.focus, +.open > .btn-danger.dropdown-toggle:hover, +.open > .btn-danger.dropdown-toggle:focus, +.open > .btn-danger.dropdown-toggle.focus +{ + color: #fff; + border-color: #761c19; + background-color: #ac2925; +} +.btn-danger:active, +.btn-danger.active, +.open > .btn-danger.dropdown-toggle +{ + background-image: none; +} +.btn-danger.disabled:hover, +.btn-danger.disabled:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled]:hover, +.btn-danger[disabled]:focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger:hover, +fieldset[disabled] .btn-danger:focus, +fieldset[disabled] .btn-danger.focus +{ + border-color: #d43f3a; + background-color: #d9534f; +} +.btn-danger .badge +{ + color: #d9534f; + background-color: #fff; +} + +.btn-link +{ + font-weight: normal; + + color: #337ab7; + border-radius: 0; +} +.btn-link, +.btn-link:active, +.btn-link.active, +.btn-link[disabled], +fieldset[disabled] .btn-link +{ + background-color: transparent; + box-shadow: none; +} +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active +{ + border-color: transparent; +} +.btn-link:hover, +.btn-link:focus +{ + text-decoration: underline; + + color: #23527c; + background-color: transparent; +} +.btn-link[disabled]:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:hover, +fieldset[disabled] .btn-link:focus +{ + text-decoration: none; + + color: #777; +} + +.btn-lg, +.btn-group-lg > .btn +{ + font-size: 18px; + line-height: 1.33333; + + padding: 10px 16px; + + border-radius: 6px; +} + +.btn-sm, +.btn-group-sm > .btn +{ + font-size: 12px; + line-height: 1.5; + + padding: 5px 10px; + + border-radius: 3px; +} + +.btn-xs, +.btn-group-xs > .btn +{ + font-size: 12px; + line-height: 1.5; + + padding: 1px 5px; + + border-radius: 3px; +} + +.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 +{ + -webkit-transition: opacity .15s linear; + transition: opacity .15s linear; + + opacity: 0; +} +.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; + + overflow: hidden; + + height: 0; + + -webkit-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: .35s; + transition-duration: .35s; + -webkit-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 +{ + font-size: 14px; + + position: absolute; + z-index: 1000; + top: 100%; + left: 0; + + display: none; + float: left; + + min-width: 160px; + margin: 2px 0 0; + padding: 5px 0; + + list-style: none; + + text-align: left; + + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .15); + border-radius: 4px; + background-color: #fff; + background-clip: padding-box; + box-shadow: 0 6px 12px rgba(0, 0, 0, .175); +} +.dropdown-menu.pull-right +{ + right: 0; + left: auto; +} +.dropdown-menu .divider +{ + overflow: hidden; + + height: 1px; + margin: 9px 0; + + background-color: #e5e5e5; +} +.dropdown-menu > li > a +{ + font-weight: normal; + line-height: 1.42857; + + display: block; + clear: both; + + padding: 3px 20px; + + white-space: nowrap; + + color: #333; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus +{ + text-decoration: none; + + color: #262626; + background-color: #f5f5f5; +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus +{ + text-decoration: none; + + color: #fff; + outline: 0; + background-color: #337ab7; +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus +{ + color: #777; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus +{ + cursor: not-allowed; + text-decoration: none; + + 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 +{ + font-size: 12px; + line-height: 1.42857; + + display: block; + + padding: 3px 20px; + + white-space: nowrap; + + color: #777; +} + +.dropdown-backdrop +{ + position: fixed; + z-index: 990; + top: 0; + right: 0; + bottom: 0; + left: 0; +} + +.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 > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn:hover, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .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:before, +.btn-toolbar:after +{ + display: table; + + content: ' '; +} +.btn-toolbar:after +{ + clear: both; +} +.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, +.btn-group-lg.btn-group > .btn + .dropdown-toggle +{ + padding-right: 12px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle +{ + box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); +} +.btn-group.open .dropdown-toggle.btn-link +{ + box-shadow: none; +} + +.btn .caret +{ + margin-left: 0; +} + +.btn-lg .caret, +.btn-group-lg > .btn .caret +{ + border-width: 5px 5px 0; + border-bottom-width: 0; +} + +.dropup .btn-lg .caret, +.dropup .btn-group-lg > .btn .caret +{ + border-width: 0 5px 5px; +} + +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group, +.btn-group-vertical > .btn-group > .btn +{ + display: block; + float: none; + + width: 100%; + max-width: 100%; +} + +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after +{ + display: table; + + content: ' '; +} + +.btn-group-vertical > .btn-group:after +{ + clear: both; +} + +.btn-group-vertical > .btn-group > .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: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:last-child:not(:first-child) +{ + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +.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 input[type='checkbox'], +[data-toggle='buttons'] > .btn-group > .btn input[type='radio'], +[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-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%; + + vertical-align: middle; + white-space: nowrap; +} + +.input-group-addon +{ + font-size: 14px; + font-weight: normal; + line-height: 1; + + padding: 6px 12px; + + text-align: center; + + color: #555; + border: 1px solid #ccc; + border-radius: 4px; + background-color: #eee; +} +.input-group-addon.input-sm, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .input-group-addon.btn +{ + font-size: 12px; + + padding: 5px 10px; + + border-radius: 3px; +} +.input-group-addon.input-lg, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .input-group-addon.btn +{ + font-size: 18px; + + padding: 10px 16px; + + border-radius: 6px; +} +.input-group-addon input[type='radio'], +.input-group-addon input[type='checkbox'] +{ + margin-top: 0; +} + +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .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 +{ + font-size: 0; + + position: relative; + + 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 +{ + margin-bottom: 0; + padding-left: 0; + + list-style: none; +} +.nav:before, +.nav:after +{ + display: table; + + content: ' '; +} +.nav:after +{ + clear: both; +} +.nav > li +{ + position: relative; + + display: block; +} +.nav > li > a +{ + position: relative; + + display: block; + + padding: 10px 15px; +} +.nav > li > a:hover, +.nav > li > a:focus +{ + text-decoration: none; + + background-color: #eee; +} +.nav > li.disabled > a +{ + color: #777; +} +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus +{ + cursor: not-allowed; + text-decoration: none; + + color: #777; + background-color: transparent; +} +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus +{ + border-color: #337ab7; + background-color: #eee; +} +.nav .nav-divider +{ + overflow: hidden; + + height: 1px; + margin: 9px 0; + + background-color: #e5e5e5; +} +.nav > li > a > img +{ + max-width: none; +} + +.nav-tabs +{ + border-bottom: 1px solid #ddd; +} +.nav-tabs > li +{ + float: left; + + margin-bottom: -1px; +} +.nav-tabs > li > a +{ + line-height: 1.42857; + + margin-right: 2px; + + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} +.nav-tabs > li > a:hover +{ + border-color: #eee #eee #ddd; +} +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus +{ + cursor: default; + + color: #555; + border: 1px solid #ddd; + border-bottom-color: transparent; + background-color: #fff; +} + +.nav-pills > li +{ + float: left; +} +.nav-pills > li > a +{ + border-radius: 4px; +} +.nav-pills > li + li +{ + margin-left: 2px; +} +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus +{ + color: #fff; + background-color: #337ab7; +} + +.nav-stacked > li +{ + float: none; +} +.nav-stacked > li + li +{ + margin-top: 2px; + margin-left: 0; +} + +.nav-justified, +.nav-tabs.nav-justified +{ + width: 100%; +} +.nav-justified > li, +.nav-tabs.nav-justified > li +{ + float: none; +} +.nav-justified > li > a, +.nav-tabs.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, + .nav-tabs.nav-justified > li + { + display: table-cell; + + width: 1%; + } + .nav-justified > li > a, + .nav-tabs.nav-justified > li > a + { + margin-bottom: 0; + } +} + +.nav-tabs-justified, +.nav-tabs.nav-justified +{ + border-bottom: 0; +} +.nav-tabs-justified > li > a, +.nav-tabs.nav-justified > li > a +{ + margin-right: 0; + + border-radius: 4px; +} +.nav-tabs-justified > .active > a, +.nav-tabs.nav-justified > .active > a, +.nav-tabs-justified > .active > a:hover, +.nav-tabs.nav-justified > .active > a:hover, +.nav-tabs-justified > .active > a:focus, +.nav-tabs.nav-justified > .active > a:focus +{ + border: 1px solid #ddd; +} +@media (min-width: 768px) +{ + .nav-tabs-justified > li > a, + .nav-tabs.nav-justified > li > a + { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; + } + .nav-tabs-justified > .active > a, + .nav-tabs.nav-justified > .active > a, + .nav-tabs-justified > .active > a:hover, + .nav-tabs.nav-justified > .active > a:hover, + .nav-tabs-justified > .active > a:focus, + .nav-tabs.nav-justified > .active > a:focus + { + border-bottom-color: #fff; + } +} + +.tab-content > .tab-pane +{ + display: none; +} + +.tab-content > .active +{ + display: block; +} + +.nav-tabs .dropdown-menu +{ + margin-top: -1px; + + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.navbar +{ + position: relative; + + min-height: 50px; + margin-bottom: 20px; + + border: 1px solid transparent; +} +.navbar:before, +.navbar:after +{ + display: table; + + content: ' '; +} +.navbar:after +{ + clear: both; +} +@media (min-width: 768px) +{ + .navbar + { + border-radius: 4px; + } +} + +.navbar-header:before, +.navbar-header:after +{ + display: table; + + content: ' '; +} + +.navbar-header:after +{ + clear: both; +} + +@media (min-width: 768px) +{ + .navbar-header + { + float: left; + } +} + +.navbar-collapse +{ + overflow-x: visible; + + padding-right: 15px; + padding-left: 15px; + + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1); + + -webkit-overflow-scrolling: touch; +} +.navbar-collapse:before, +.navbar-collapse:after +{ + display: table; + + content: ' '; +} +.navbar-collapse:after +{ + clear: both; +} +.navbar-collapse.in +{ + overflow-y: auto; +} +@media (min-width: 768px) +{ + .navbar-collapse + { + width: auto; + + border-top: 0; + box-shadow: none; + } + .navbar-collapse.collapse + { + display: block !important; + overflow: visible !important; + + height: auto !important; + padding-bottom: 0; + } + .navbar-collapse.in + { + overflow-y: visible; + } + .navbar-fixed-top .navbar-collapse, + .navbar-static-top .navbar-collapse, + .navbar-fixed-bottom .navbar-collapse + { + padding-right: 0; + padding-left: 0; + } +} + +.navbar-fixed-top .navbar-collapse, +.navbar-fixed-bottom .navbar-collapse +{ + max-height: 340px; +} +@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 > .navbar-collapse, +.container-fluid > .navbar-header, +.container-fluid > .navbar-collapse +{ + margin-right: -15px; + margin-left: -15px; +} +@media (min-width: 768px) +{ + .container > .navbar-header, + .container > .navbar-collapse, + .container-fluid > .navbar-header, + .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; + z-index: 1030; + right: 0; + left: 0; +} +@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 +{ + font-size: 18px; + line-height: 20px; + + float: left; + + height: 50px; + padding: 15px 15px; +} +.navbar-brand:hover, +.navbar-brand:focus +{ + text-decoration: none; +} +.navbar-brand > img +{ + display: block; +} +@media (min-width: 768px) +{ + .navbar > .container .navbar-brand, + .navbar > .container-fluid .navbar-brand + { + margin-left: -15px; + } +} + +.navbar-toggle +{ + position: relative; + + float: right; + + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + padding: 9px 10px; + + border: 1px solid transparent; + border-radius: 4px; + background-color: transparent; + background-image: none; +} +.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: 7.5px -15px; +} +.navbar-nav > li > a +{ + line-height: 20px; + + padding-top: 10px; + padding-bottom: 10px; +} +@media (max-width: 767px) +{ + .navbar-nav .open .dropdown-menu + { + position: static; + + float: none; + + width: auto; + margin-top: 0; + + border: 0; + background-color: transparent; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header + { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a + { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus + { + background-image: none; + } +} +@media (min-width: 768px) +{ + .navbar-nav + { + float: left; + + margin: 0; + } + .navbar-nav > li + { + float: left; + } + .navbar-nav > li > a + { + padding-top: 15px; + padding-bottom: 15px; + } +} + +.navbar-form +{ + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + padding: 10px 15px; + + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1); +} +@media (min-width: 768px) +{ + .navbar-form .form-group + { + display: inline-block; + + margin-bottom: 0; + + vertical-align: middle; + } + .navbar-form .form-control + { + display: inline-block; + + 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; + margin-right: 0; + margin-left: 0; + padding-top: 0; + padding-bottom: 0; + + border: 0; + 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: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.navbar-btn +{ + margin-top: 8px; + margin-bottom: 8px; +} +.navbar-btn.btn-sm, +.btn-group-sm > .navbar-btn.btn +{ + margin-top: 10px; + margin-bottom: 10px; +} +.navbar-btn.btn-xs, +.btn-group-xs > .navbar-btn.btn +{ + margin-top: 14px; + margin-bottom: 14px; +} + +.navbar-text +{ + margin-top: 15px; + margin-bottom: 15px; +} +@media (min-width: 768px) +{ + .navbar-text + { + float: left; + + margin-right: 15px; + margin-left: 15px; + } +} + +@media (min-width: 768px) +{ + .navbar-left + { + float: left !important; + } + .navbar-right + { + float: right !important; + + margin-right: -15px; + } + .navbar-right ~ .navbar-right + { + margin-right: 0; + } +} + +.navbar-default +{ + border-color: #e7e7e7; + background-color: #f8f8f8; +} +.navbar-default .navbar-brand +{ + color: #777; +} +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus +{ + color: #5e5e5e; + background-color: transparent; +} +.navbar-default .navbar-text +{ + color: #777; +} +.navbar-default .navbar-nav > li > a +{ + color: #777; +} +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus +{ + color: #333; + background-color: transparent; +} +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus +{ + color: #555; + background-color: #e7e7e7; +} +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus +{ + color: #ccc; + background-color: transparent; +} +.navbar-default .navbar-toggle +{ + border-color: #ddd; +} +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus +{ + background-color: #ddd; +} +.navbar-default .navbar-toggle .icon-bar +{ + background-color: #888; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form +{ + border-color: #e7e7e7; +} +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus +{ + color: #555; + background-color: #e7e7e7; +} +@media (max-width: 767px) +{ + .navbar-default .navbar-nav .open .dropdown-menu > li > a + { + color: #777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus + { + color: #333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus + { + color: #555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus + { + color: #ccc; + background-color: transparent; + } +} +.navbar-default .navbar-link +{ + color: #777; +} +.navbar-default .navbar-link:hover +{ + color: #333; +} +.navbar-default .btn-link +{ + color: #777; +} +.navbar-default .btn-link:hover, +.navbar-default .btn-link:focus +{ + color: #333; +} +.navbar-default .btn-link[disabled]:hover, +.navbar-default .btn-link[disabled]:focus, +fieldset[disabled] .navbar-default .btn-link:hover, +fieldset[disabled] .navbar-default .btn-link:focus +{ + color: #ccc; +} + +.navbar-inverse +{ + border-color: #090909; + background-color: #222; +} +.navbar-inverse .navbar-brand +{ + color: #9d9d9d; +} +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus +{ + color: #fff; + background-color: transparent; +} +.navbar-inverse .navbar-text +{ + color: #9d9d9d; +} +.navbar-inverse .navbar-nav > li > a +{ + color: #9d9d9d; +} +.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: #090909; +} +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus +{ + color: #444; + background-color: transparent; +} +.navbar-inverse .navbar-toggle +{ + border-color: #333; +} +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus +{ + background-color: #333; +} +.navbar-inverse .navbar-toggle .icon-bar +{ + background-color: #fff; +} +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form +{ + border-color: #101010; +} +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus +{ + color: #fff; + background-color: #090909; +} +@media (max-width: 767px) +{ + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header + { + border-color: #090909; + } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider + { + background-color: #090909; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a + { + color: #9d9d9d; + } + .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: #090909; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus + { + color: #444; + background-color: transparent; + } +} +.navbar-inverse .navbar-link +{ + color: #9d9d9d; +} +.navbar-inverse .navbar-link:hover +{ + color: #fff; +} +.navbar-inverse .btn-link +{ + color: #9d9d9d; +} +.navbar-inverse .btn-link:hover, +.navbar-inverse .btn-link:focus +{ + color: #fff; +} +.navbar-inverse .btn-link[disabled]:hover, +.navbar-inverse .btn-link[disabled]:focus, +fieldset[disabled] .navbar-inverse .btn-link:hover, +fieldset[disabled] .navbar-inverse .btn-link:focus +{ + color: #444; +} + +.breadcrumb +{ + margin-bottom: 20px; + padding: 8px 15px; + + list-style: none; + + border-radius: 4px; + background-color: #f5f5f5; +} +.breadcrumb > li +{ + display: inline-block; +} +.breadcrumb > li + li:before +{ + padding: 0 5px; + + content: '/ '; + + color: #ccc; +} +.breadcrumb > .active +{ + color: #777; +} + +.pagination +{ + display: inline-block; + + margin: 20px 0; + padding-left: 0; + + border-radius: 4px; +} +.pagination > li +{ + display: inline; +} +.pagination > li > a, +.pagination > li > span +{ + line-height: 1.42857; + + position: relative; + + float: left; + + margin-left: -1px; + padding: 6px 12px; + + text-decoration: none; + + color: #337ab7; + border: 1px solid #ddd; + background-color: #fff; +} +.pagination > li:first-child > a, +.pagination > li:first-child > span +{ + margin-left: 0; + + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; +} +.pagination > li:last-child > a, +.pagination > li:last-child > span +{ + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} +.pagination > li > a:hover, +.pagination > li > a:focus, +.pagination > li > span:hover, +.pagination > li > span:focus +{ + z-index: 2; + + color: #23527c; + border-color: #ddd; + background-color: #eee; +} +.pagination > .active > a, +.pagination > .active > a:hover, +.pagination > .active > a:focus, +.pagination > .active > span, +.pagination > .active > span:hover, +.pagination > .active > span:focus +{ + z-index: 3; + + cursor: default; + + color: #fff; + border-color: #337ab7; + background-color: #337ab7; +} +.pagination > .disabled > span, +.pagination > .disabled > span:hover, +.pagination > .disabled > span:focus, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus +{ + cursor: not-allowed; + + color: #777; + border-color: #ddd; + background-color: #fff; +} + +.pagination-lg > li > a, +.pagination-lg > li > span +{ + font-size: 18px; + line-height: 1.33333; + + padding: 10px 16px; +} + +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span +{ + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; +} + +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span +{ + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} + +.pagination-sm > li > a, +.pagination-sm > li > span +{ + font-size: 12px; + line-height: 1.5; + + padding: 5px 10px; +} + +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span +{ + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} + +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span +{ + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.pager +{ + margin: 20px 0; + padding-left: 0; + + list-style: none; + + text-align: center; +} +.pager:before, +.pager:after +{ + display: table; + + content: ' '; +} +.pager:after +{ + clear: both; +} +.pager li +{ + display: inline; +} +.pager li > a, +.pager li > span +{ + display: inline-block; + + padding: 5px 14px; + + border: 1px solid #ddd; + border-radius: 15px; + background-color: #fff; +} +.pager li > a:hover, +.pager li > a:focus +{ + text-decoration: none; + + background-color: #eee; +} +.pager .next > a, +.pager .next > span +{ + float: right; +} +.pager .previous > a, +.pager .previous > span +{ + float: left; +} +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span +{ + cursor: not-allowed; + + color: #777; + background-color: #fff; +} + +.label +{ + font-size: 75%; + font-weight: bold; + line-height: 1; + + display: inline; + + padding: .2em .6em .3em; + + text-align: center; + vertical-align: baseline; + white-space: nowrap; + + color: #fff; + border-radius: .25em; +} +.label:empty +{ + display: none; +} +.btn .label +{ + position: relative; + top: -1px; +} + +a.label:hover, +a.label:focus +{ + cursor: pointer; + text-decoration: none; + + color: #fff; +} + +.label-default +{ + background-color: #777; +} +.label-default[href]:hover, +.label-default[href]:focus +{ + background-color: #5e5e5e; +} + +.label-primary +{ + background-color: #337ab7; +} +.label-primary[href]:hover, +.label-primary[href]:focus +{ + background-color: #286090; +} + +.label-success +{ + background-color: #5cb85c; +} +.label-success[href]:hover, +.label-success[href]:focus +{ + background-color: #449d44; +} + +.label-info +{ + background-color: #5bc0de; +} +.label-info[href]:hover, +.label-info[href]:focus +{ + background-color: #31b0d5; +} + +.label-warning +{ + background-color: #f0ad4e; +} +.label-warning[href]:hover, +.label-warning[href]:focus +{ + background-color: #ec971f; +} + +.label-danger +{ + background-color: #d9534f; +} +.label-danger[href]:hover, +.label-danger[href]:focus +{ + background-color: #c9302c; +} + +.badge +{ + font-size: 12px; + font-weight: bold; + line-height: 1; + + display: inline-block; + + min-width: 10px; + padding: 3px 7px; + + text-align: center; + vertical-align: middle; + white-space: nowrap; + + color: #fff; + border-radius: 10px; + background-color: #777; +} +.badge:empty +{ + display: none; +} +.btn .badge +{ + position: relative; + top: -1px; +} +.btn-xs .badge, +.btn-group-xs > .btn .badge, +.btn-group-xs > .btn .badge +{ + top: 0; + + padding: 1px 5px; +} +.list-group-item.active > .badge, +.nav-pills > .active > a > .badge +{ + color: #337ab7; + 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; +} + +a.badge:hover, +a.badge:focus +{ + cursor: pointer; + text-decoration: none; + + color: #fff; +} + +.jumbotron +{ + margin-bottom: 30px; + padding-top: 30px; + padding-bottom: 30px; + + color: inherit; + background-color: #eee; +} +.jumbotron h1, +.jumbotron .h1 +{ + color: inherit; +} +.jumbotron p +{ + font-size: 21px; + font-weight: 200; + + margin-bottom: 15px; +} +.jumbotron > hr +{ + border-top-color: #d5d5d5; +} +.container .jumbotron, +.container-fluid .jumbotron +{ + padding-right: 15px; + padding-left: 15px; + + border-radius: 6px; +} +.jumbotron .container +{ + max-width: 100%; +} +@media screen and (min-width: 768px) +{ + .jumbotron + { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron, + .container-fluid .jumbotron + { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1, + .jumbotron .h1 + { + font-size: 63px; + } +} + +.thumbnail +{ + line-height: 1.42857; + + display: block; + + margin-bottom: 20px; + padding: 4px; + + -webkit-transition: border .2s ease-in-out; + transition: border .2s ease-in-out; + + border: 1px solid #ddd; + border-radius: 4px; + background-color: #fff; +} +.thumbnail > img, +.thumbnail a > img +{ + display: block; + + max-width: 100%; + height: auto; + margin-right: auto; + margin-left: auto; +} +.thumbnail .caption +{ + padding: 9px; + + color: #333; +} + +a.thumbnail:hover, +a.thumbnail:focus, +a.thumbnail.active +{ + border-color: #337ab7; +} + +.alert +{ + margin-bottom: 20px; + padding: 15px; + + border: 1px solid transparent; + border-radius: 4px; +} +.alert h4 +{ + margin-top: 0; + + color: inherit; +} +.alert .alert-link +{ + font-weight: bold; +} +.alert > p, +.alert > ul +{ + margin-bottom: 0; +} +.alert > p + p +{ + margin-top: 5px; +} + +.alert-dismissable, +.alert-dismissible +{ + padding-right: 35px; +} +.alert-dismissable .close, +.alert-dismissible .close +{ + position: relative; + top: -2px; + right: -21px; + + color: inherit; +} + +.alert-success +{ + color: #3c763d; + border-color: #d6e9c6; + background-color: #dff0d8; +} +.alert-success hr +{ + border-top-color: #c9e2b3; +} +.alert-success .alert-link +{ + color: #2b542c; +} + +.alert-info +{ + color: #31708f; + border-color: #bce8f1; + background-color: #d9edf7; +} +.alert-info hr +{ + border-top-color: #a6e1ec; +} +.alert-info .alert-link +{ + color: #245269; +} + +.alert-warning +{ + color: #8a6d3b; + border-color: #faebcc; + background-color: #fcf8e3; +} +.alert-warning hr +{ + border-top-color: #f7e1b5; +} +.alert-warning .alert-link +{ + color: #66512c; +} + +.alert-danger +{ + color: #a94442; + border-color: #ebccd1; + background-color: #f2dede; +} +.alert-danger hr +{ + border-top-color: #e4b9c0; +} +.alert-danger .alert-link +{ + color: #843534; +} + +@-webkit-keyframes progress-bar-stripes +{ + from + { + background-position: 40px 0; + } + to + { + background-position: 0 0; + } +} + +@keyframes progress-bar-stripes +{ + from + { + background-position: 40px 0; + } + to + { + background-position: 0 0; + } +} + +.progress +{ + overflow: hidden; + + height: 20px; + margin-bottom: 20px; + + border-radius: 4px; + background-color: #f5f5f5; + box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1); +} + +.progress-bar +{ + font-size: 12px; + line-height: 20px; + + float: left; + + width: 0; + height: 100%; + + -webkit-transition: width .6s ease; + transition: width .6s ease; + text-align: center; + + color: #fff; + background-color: #337ab7; + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15); +} + +.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: 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-size: 40px 40px; +} + +.progress.active .progress-bar, +.progress-bar.active +{ + -webkit-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-bar-success +{ + background-color: #5cb85c; +} +.progress-striped .progress-bar-success +{ + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .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: #5bc0de; +} +.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: 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: #f0ad4e; +} +.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: 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: #d9534f; +} +.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: 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 +{ + margin-bottom: 20px; + padding-left: 0; +} + +.list-group-item +{ + position: relative; + + display: block; + + margin-bottom: -1px; + padding: 10px 15px; + + border: 1px solid #ddd; + background-color: #fff; +} +.list-group-item:first-child +{ + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} +.list-group-item:last-child +{ + margin-bottom: 0; + + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +a.list-group-item, +button.list-group-item +{ + color: #555; +} +a.list-group-item .list-group-item-heading, +button.list-group-item .list-group-item-heading +{ + color: #333; +} +a.list-group-item:hover, +a.list-group-item:focus, +button.list-group-item:hover, +button.list-group-item:focus +{ + text-decoration: none; + + color: #555; + background-color: #f5f5f5; +} + +button.list-group-item +{ + width: 100%; + + text-align: left; +} + +.list-group-item.disabled, +.list-group-item.disabled:hover, +.list-group-item.disabled:focus +{ + cursor: not-allowed; + + color: #777; + background-color: #eee; +} +.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: #777; +} + +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus +{ + z-index: 2; + + color: #fff; + border-color: #337ab7; + background-color: #337ab7; +} +.list-group-item.active .list-group-item-heading, +.list-group-item.active .list-group-item-heading > small, +.list-group-item.active .list-group-item-heading > .small, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading > small, +.list-group-item.active:hover .list-group-item-heading > .small, +.list-group-item.active:focus .list-group-item-heading, +.list-group-item.active:focus .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: #c7ddef; +} + +.list-group-item-success +{ + color: #3c763d; + background-color: #dff0d8; +} + +a.list-group-item-success, +button.list-group-item-success +{ + color: #3c763d; +} +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, +a.list-group-item-success:focus, +button.list-group-item-success:hover, +button.list-group-item-success:focus +{ + color: #3c763d; + background-color: #d0e9c6; +} +a.list-group-item-success.active, +a.list-group-item-success.active:hover, +a.list-group-item-success.active:focus, +button.list-group-item-success.active, +button.list-group-item-success.active:hover, +button.list-group-item-success.active:focus +{ + color: #fff; + border-color: #3c763d; + background-color: #3c763d; +} + +.list-group-item-info +{ + color: #31708f; + background-color: #d9edf7; +} + +a.list-group-item-info, +button.list-group-item-info +{ + color: #31708f; +} +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, +a.list-group-item-info:focus, +button.list-group-item-info:hover, +button.list-group-item-info:focus +{ + color: #31708f; + background-color: #c4e3f3; +} +a.list-group-item-info.active, +a.list-group-item-info.active:hover, +a.list-group-item-info.active:focus, +button.list-group-item-info.active, +button.list-group-item-info.active:hover, +button.list-group-item-info.active:focus +{ + color: #fff; + border-color: #31708f; + background-color: #31708f; +} + +.list-group-item-warning +{ + color: #8a6d3b; + background-color: #fcf8e3; +} + +a.list-group-item-warning, +button.list-group-item-warning +{ + color: #8a6d3b; +} +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, +a.list-group-item-warning:focus, +button.list-group-item-warning:hover, +button.list-group-item-warning:focus +{ + color: #8a6d3b; + background-color: #faf2cc; +} +a.list-group-item-warning.active, +a.list-group-item-warning.active:hover, +a.list-group-item-warning.active:focus, +button.list-group-item-warning.active, +button.list-group-item-warning.active:hover, +button.list-group-item-warning.active:focus +{ + color: #fff; + border-color: #8a6d3b; + background-color: #8a6d3b; +} + +.list-group-item-danger +{ + color: #a94442; + background-color: #f2dede; +} + +a.list-group-item-danger, +button.list-group-item-danger +{ + color: #a94442; +} +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, +a.list-group-item-danger:focus, +button.list-group-item-danger:hover, +button.list-group-item-danger:focus +{ + color: #a94442; + background-color: #ebcccc; +} +a.list-group-item-danger.active, +a.list-group-item-danger.active:hover, +a.list-group-item-danger.active:focus, +button.list-group-item-danger.active, +button.list-group-item-danger.active:hover, +button.list-group-item-danger.active:focus +{ + color: #fff; + border-color: #a94442; + background-color: #a94442; +} + +.list-group-item-heading +{ + margin-top: 0; + margin-bottom: 5px; +} + +.list-group-item-text +{ + line-height: 1.3; + + margin-bottom: 0; +} + +.panel +{ + margin-bottom: 20px; + + border: 1px solid transparent; + border-radius: 4px; + background-color: #fff; + box-shadow: 0 1px 1px rgba(0, 0, 0, .05); +} + +.panel-body +{ + padding: 15px; +} +.panel-body:before, +.panel-body:after +{ + display: table; + + content: ' '; +} +.panel-body:after +{ + clear: both; +} + +.panel-heading +{ + padding: 10px 15px; + + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel-heading > .dropdown .dropdown-toggle +{ + color: inherit; +} + +.panel-title +{ + font-size: 16px; + + margin-top: 0; + margin-bottom: 0; + + color: inherit; +} +.panel-title > a, +.panel-title > small, +.panel-title > .small, +.panel-title > small > a, +.panel-title > .small > a +{ + color: inherit; +} + +.panel-footer +{ + padding: 10px 15px; + + border-top: 1px solid #ddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; + background-color: #f5f5f5; +} + +.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: 3px; + border-top-right-radius: 3px; +} +.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: 3px; + border-bottom-left-radius: 3px; +} + +.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: 15px; + padding-left: 15px; +} + +.panel > .table:first-child, +.panel > .table-responsive:first-child > .table:first-child +{ + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .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 > thead:first-child > tr:first-child, +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child +{ + border-top-left-radius: 3px; + border-top-right-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:first-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, +.panel > .table-responsive:first-child > .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 th:first-child, +.panel > .table-responsive:first-child > .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 th:first-child +{ + border-top-left-radius: 3px; +} +.panel > .table:first-child > thead:first-child > tr:first-child td:last-child, +.panel > .table:first-child > thead:first-child > tr:first-child th:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, +.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, +.panel > .table-responsive:first-child > .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 th:last-child, +.panel > .table-responsive:first-child > .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 th:last-child +{ + border-top-right-radius: 3px; +} + +.panel > .table:last-child, +.panel > .table-responsive:last-child > .table:last-child +{ + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .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 > tbody:last-child > tr:last-child, +.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child +{ + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child, +.panel > .table-responsive:last-child > .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 th:first-child, +.panel > .table-responsive:last-child > .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 th:first-child +{ + border-bottom-left-radius: 3px; +} +.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, +.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child, +.panel > .table-responsive:last-child > .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 th:last-child, +.panel > .table-responsive:last-child > .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 th:last-child +{ + border-bottom-right-radius: 3px; +} + +.panel > .panel-body + .table, +.panel > .panel-body + .table-responsive, +.panel > .table + .panel-body, +.panel > .table-responsive + .panel-body +{ + border-top: 1px solid #ddd; +} + +.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-bordered > thead > tr > td:first-child, +.panel > .table-bordered > tbody > tr > th:first-child, +.panel > .table-bordered > tbody > tr > td:first-child, +.panel > .table-bordered > tfoot > tr > th:first-child, +.panel > .table-bordered > tfoot > tr > td:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:first-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th: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-bordered > thead > tr > td:last-child, +.panel > .table-bordered > tbody > tr > th:last-child, +.panel > .table-bordered > tbody > tr > td:last-child, +.panel > .table-bordered > tfoot > tr > th:last-child, +.panel > .table-bordered > tfoot > tr > td:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > th:last-child, +.panel > .table-responsive > .table-bordered > thead > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, +.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, +.panel > .table-responsive > .table-bordered > tfoot > tr > th: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-bordered > thead > tr:first-child > th, +.panel > .table-bordered > tbody > tr:first-child > td, +.panel > .table-bordered > tbody > tr:first-child > th, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > td, +.panel > .table-responsive > .table-bordered > thead > tr:first-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th +{ + border-bottom: 0; +} +.panel > .table-bordered > tbody > tr:last-child > td, +.panel > .table-bordered > tbody > tr:last-child > th, +.panel > .table-bordered > tfoot > tr:last-child > td, +.panel > .table-bordered > tfoot > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, +.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, +.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, +.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: 20px; +} +.panel-group .panel +{ + margin-bottom: 0; + + border-radius: 4px; +} +.panel-group .panel + .panel +{ + margin-top: 5px; +} +.panel-group .panel-heading +{ + border-bottom: 0; +} +.panel-group .panel-heading + .panel-collapse > .panel-body, +.panel-group .panel-heading + .panel-collapse > .list-group +{ + border-top: 1px solid #ddd; +} +.panel-group .panel-footer +{ + border-top: 0; +} +.panel-group .panel-footer + .panel-collapse .panel-body +{ + border-bottom: 1px solid #ddd; +} + +.panel-default +{ + border-color: #ddd; +} +.panel-default > .panel-heading +{ + color: #333; + border-color: #ddd; + background-color: #f5f5f5; +} +.panel-default > .panel-heading + .panel-collapse > .panel-body +{ + border-top-color: #ddd; +} +.panel-default > .panel-heading .badge +{ + color: #f5f5f5; + background-color: #333; +} +.panel-default > .panel-footer + .panel-collapse > .panel-body +{ + border-bottom-color: #ddd; +} + +.panel-primary +{ + border-color: #337ab7; +} +.panel-primary > .panel-heading +{ + color: #fff; + border-color: #337ab7; + background-color: #337ab7; +} +.panel-primary > .panel-heading + .panel-collapse > .panel-body +{ + border-top-color: #337ab7; +} +.panel-primary > .panel-heading .badge +{ + color: #337ab7; + background-color: #fff; +} +.panel-primary > .panel-footer + .panel-collapse > .panel-body +{ + border-bottom-color: #337ab7; +} + +.panel-success +{ + border-color: #d6e9c6; +} +.panel-success > .panel-heading +{ + color: #3c763d; + border-color: #d6e9c6; + background-color: #dff0d8; +} +.panel-success > .panel-heading + .panel-collapse > .panel-body +{ + border-top-color: #d6e9c6; +} +.panel-success > .panel-heading .badge +{ + color: #dff0d8; + background-color: #3c763d; +} +.panel-success > .panel-footer + .panel-collapse > .panel-body +{ + border-bottom-color: #d6e9c6; +} + +.panel-info +{ + border-color: #bce8f1; +} +.panel-info > .panel-heading +{ + color: #31708f; + border-color: #bce8f1; + background-color: #d9edf7; +} +.panel-info > .panel-heading + .panel-collapse > .panel-body +{ + border-top-color: #bce8f1; +} +.panel-info > .panel-heading .badge +{ + color: #d9edf7; + background-color: #31708f; +} +.panel-info > .panel-footer + .panel-collapse > .panel-body +{ + border-bottom-color: #bce8f1; +} + +.panel-warning +{ + border-color: #faebcc; +} +.panel-warning > .panel-heading +{ + color: #8a6d3b; + border-color: #faebcc; + background-color: #fcf8e3; +} +.panel-warning > .panel-heading + .panel-collapse > .panel-body +{ + border-top-color: #faebcc; +} +.panel-warning > .panel-heading .badge +{ + color: #fcf8e3; + background-color: #8a6d3b; +} +.panel-warning > .panel-footer + .panel-collapse > .panel-body +{ + border-bottom-color: #faebcc; +} + +.panel-danger +{ + border-color: #ebccd1; +} +.panel-danger > .panel-heading +{ + color: #a94442; + border-color: #ebccd1; + background-color: #f2dede; +} +.panel-danger > .panel-heading + .panel-collapse > .panel-body +{ + border-top-color: #ebccd1; +} +.panel-danger > .panel-heading .badge +{ + color: #f2dede; + background-color: #a94442; +} +.panel-danger > .panel-footer + .panel-collapse > .panel-body +{ + border-bottom-color: #ebccd1; +} + +.embed-responsive +{ + position: relative; + + display: block; + overflow: hidden; + + height: 0; + padding: 0; +} +.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; + margin-bottom: 20px; + padding: 19px; + + border: 1px solid #e3e3e3; + border-radius: 4px; + background-color: #f5f5f5; + 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: 6px; +} + +.well-sm +{ + padding: 9px; + + border-radius: 3px; +} + +.close +{ + font-size: 21px; + font-weight: bold; + line-height: 1; + + float: right; + + opacity: .2; + color: #000; + text-shadow: 0 1px 0 #fff; + + filter: alpha(opacity=20); +} +.close:hover, +.close:focus +{ + cursor: pointer; + text-decoration: none; + + opacity: .5; + color: #000; + + filter: alpha(opacity=50); +} + +button.close +{ + padding: 0; + + cursor: pointer; + + border: 0; + background: transparent; + + -webkit-appearance: none; +} + +.modal-open +{ + overflow: hidden; +} + +.modal +{ + position: fixed; + z-index: 1050; + top: 0; + right: 0; + bottom: 0; + left: 0; + + display: none; + overflow: hidden; + + outline: 0; + + -webkit-overflow-scrolling: touch; +} +.modal.fade .modal-dialog +{ + -webkit-transition: -webkit-transform .3s ease-out; + transition: -webkit-transform .3s ease-out; + transition: transform .3s ease-out; + transition: transform .3s ease-out, -webkit-transform .3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + transform: translate(0, -25%); +} +.modal.in .modal-dialog +{ + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); +} + +.modal-open .modal +{ + overflow-x: hidden; + overflow-y: auto; +} + +.modal-dialog +{ + position: relative; + + width: auto; + margin: 10px; +} + +.modal-content +{ + position: relative; + + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + outline: 0; + background-color: #fff; + background-clip: padding-box; + box-shadow: 0 3px 9px rgba(0, 0, 0, .5); +} + +.modal-backdrop +{ + position: fixed; + z-index: 1040; + top: 0; + right: 0; + bottom: 0; + left: 0; + + background-color: #000; +} +.modal-backdrop.fade +{ + opacity: 0; + + filter: alpha(opacity=0); +} +.modal-backdrop.in +{ + opacity: .5; + + filter: alpha(opacity=50); +} + +.modal-header +{ + padding: 15px; + + border-bottom: 1px solid #e5e5e5; +} +.modal-header:before, +.modal-header:after +{ + display: table; + + content: ' '; +} +.modal-header:after +{ + clear: both; +} + +.modal-header .close +{ + margin-top: -2px; +} + +.modal-title +{ + line-height: 1.42857; + + margin: 0; +} + +.modal-body +{ + position: relative; + + padding: 15px; +} + +.modal-footer +{ + padding: 15px; + + text-align: right; + + border-top: 1px solid #e5e5e5; +} +.modal-footer:before, +.modal-footer:after +{ + display: table; + + content: ' '; +} +.modal-footer:after +{ + clear: both; +} +.modal-footer .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; + + overflow: scroll; + + width: 50px; + height: 50px; +} + +@media (min-width: 768px) +{ + .modal-dialog + { + width: 600px; + margin: 30px auto; + } + .modal-content + { + box-shadow: 0 5px 15px rgba(0, 0, 0, .5); + } + .modal-sm + { + width: 300px; + } +} + +@media (min-width: 992px) +{ + .modal-lg + { + width: 900px; + } +} + +.tooltip +{ + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 12px; + font-weight: normal; + font-style: normal; + line-height: 1.42857; + + position: absolute; + z-index: 1070; + + display: block; + + text-align: left; + text-align: start; + white-space: normal; + text-decoration: none; + letter-spacing: normal; + word-spacing: normal; + text-transform: none; + word-wrap: normal; + word-break: normal; + + opacity: 0; + text-shadow: none; + + line-break: auto; + filter: alpha(opacity=0); +} +.tooltip.in +{ + opacity: .9; + + filter: alpha(opacity=90); +} +.tooltip.top +{ + margin-top: -3px; + padding: 5px 0; +} +.tooltip.right +{ + margin-left: 3px; + padding: 0 5px; +} +.tooltip.bottom +{ + margin-top: 3px; + padding: 5px 0; +} +.tooltip.left +{ + margin-left: -3px; + padding: 0 5px; +} + +.tooltip-inner +{ + max-width: 200px; + padding: 3px 8px; + + text-align: center; + + color: #fff; + border-radius: 4px; + background-color: #000; +} + +.tooltip-arrow +{ + position: absolute; + + width: 0; + height: 0; + + border-style: solid; + border-color: transparent; +} + +.tooltip.top .tooltip-arrow +{ + bottom: 0; + left: 50%; + + margin-left: -5px; + + border-width: 5px 5px 0; + border-top-color: #000; +} + +.tooltip.top-left .tooltip-arrow +{ + right: 5px; + bottom: 0; + + margin-bottom: -5px; + + border-width: 5px 5px 0; + border-top-color: #000; +} + +.tooltip.top-right .tooltip-arrow +{ + bottom: 0; + left: 5px; + + margin-bottom: -5px; + + border-width: 5px 5px 0; + border-top-color: #000; +} + +.tooltip.right .tooltip-arrow +{ + top: 50%; + left: 0; + + margin-top: -5px; + + border-width: 5px 5px 5px 0; + border-right-color: #000; +} + +.tooltip.left .tooltip-arrow +{ + top: 50%; + right: 0; + + margin-top: -5px; + + border-width: 5px 0 5px 5px; + border-left-color: #000; +} + +.tooltip.bottom .tooltip-arrow +{ + top: 0; + left: 50%; + + margin-left: -5px; + + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.tooltip.bottom-left .tooltip-arrow +{ + top: 0; + right: 5px; + + margin-top: -5px; + + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.tooltip.bottom-right .tooltip-arrow +{ + top: 0; + left: 5px; + + margin-top: -5px; + + border-width: 0 5px 5px; + border-bottom-color: #000; +} + +.popover +{ + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; + font-size: 14px; + font-weight: normal; + font-style: normal; + line-height: 1.42857; + + position: absolute; + z-index: 1060; + top: 0; + left: 0; + + display: none; + + max-width: 276px; + padding: 1px; + + text-align: left; + text-align: start; + white-space: normal; + text-decoration: none; + letter-spacing: normal; + word-spacing: normal; + text-transform: none; + word-wrap: normal; + word-break: normal; + + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 6px; + background-color: #fff; + background-clip: padding-box; + box-shadow: 0 5px 10px rgba(0, 0, 0, .2); + text-shadow: none; + + 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 +{ + font-size: 14px; + + margin: 0; + padding: 8px 14px; + + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; + background-color: #f7f7f7; +} + +.popover-content +{ + padding: 9px 14px; +} + +.popover > .arrow, +.popover > .arrow:after +{ + position: absolute; + + display: block; + + width: 0; + height: 0; + + border-style: solid; + border-color: transparent; +} + +.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: #999; + border-top-color: rgba(0, 0, 0, .25); + 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: #999; + border-right-color: rgba(0, 0, 0, .25); + 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: #999; + border-bottom-color: rgba(0, 0, 0, .25); +} +.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: #999; + border-left-color: rgba(0, 0, 0, .25); +} +.popover.left > .arrow:after +{ + right: 1px; + bottom: -10px; + + content: ' '; + + border-right-width: 0; + border-left-color: #fff; +} + +.carousel +{ + position: relative; +} + +.carousel-inner +{ + position: relative; + + overflow: hidden; + + width: 100%; +} +.carousel-inner > .item +{ + position: relative; + + display: none; + + -webkit-transition: .6s ease-in-out left; + transition: .6s ease-in-out left; +} +.carousel-inner > .item > img, +.carousel-inner > .item > a > img +{ + line-height: 1; + + display: block; + + max-width: 100%; + height: auto; +} +@media all and (transform-3d), (-webkit-transform-3d) +{ + .carousel-inner > .item + { + -webkit-transition: -webkit-transform .6s ease-in-out; + transition: -webkit-transform .6s ease-in-out; + transition: transform .6s ease-in-out; + transition: transform .6s ease-in-out, -webkit-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 +{ + font-size: 20px; + + position: absolute; + top: 0; + bottom: 0; + left: 0; + + width: 15%; + + text-align: center; + + opacity: .5; + color: #fff; + background-color: transparent; + text-shadow: 0 1px 2px rgba(0, 0, 0, .6); + + filter: alpha(opacity=50); +} +.carousel-control.left +{ + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, .5) 0%, rgba(0, 0, 0, .0001) 100%); + background-repeat: repeat-x; + + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); +} +.carousel-control.right +{ + right: 0; + left: auto; + + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .5) 100%); + background-repeat: repeat-x; + + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); +} +.carousel-control:hover, +.carousel-control:focus +{ + text-decoration: none; + + opacity: .9; + color: #fff; + outline: 0; + + filter: alpha(opacity=90); +} +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right +{ + position: absolute; + z-index: 5; + top: 50%; + + 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 +{ + font-family: serif; + line-height: 1; + + width: 20px; + height: 20px; +} +.carousel-control .icon-prev:before +{ + content: '\2039'; +} +.carousel-control .icon-next:before +{ + content: '\203a'; +} + +.carousel-indicators +{ + position: absolute; + z-index: 15; + bottom: 10px; + left: 50%; + + width: 60%; + margin-left: -30%; + padding-left: 0; + + list-style: none; + + text-align: center; +} +.carousel-indicators li +{ + display: inline-block; + + width: 10px; + height: 10px; + margin: 1px; + + cursor: pointer; + text-indent: -999px; + + border: 1px solid #fff; + border-radius: 10px; + background-color: #000 \9; + background-color: transparent; +} +.carousel-indicators .active +{ + width: 12px; + height: 12px; + margin: 0; + + background-color: #fff; +} + +.carousel-caption +{ + position: absolute; + z-index: 10; + right: 15%; + bottom: 20px; + left: 15%; + + padding-top: 20px; + padding-bottom: 20px; + + text-align: center; + + color: #fff; + 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 + { + font-size: 30px; + + width: 30px; + height: 30px; + margin-top: -10px; + } + .carousel-control .glyphicon-chevron-left, + .carousel-control .icon-prev + { + margin-left: -10px; + } + .carousel-control .glyphicon-chevron-right, + .carousel-control .icon-next + { + margin-right: -10px; + } + .carousel-caption + { + right: 20%; + left: 20%; + + padding-bottom: 30px; + } + .carousel-indicators + { + bottom: 20px; + } +} + +.clearfix:before, +.clearfix:after +{ + display: table; + + content: ' '; +} + +.clearfix:after +{ + clear: both; +} + +.center-block +{ + display: block; + + margin-right: auto; + margin-left: auto; +} + +.pull-right +{ + float: right !important; +} + +.pull-left +{ + float: left !important; +} + +.hide +{ + display: none !important; +} + +.show +{ + display: block !important; +} + +.invisible +{ + visibility: hidden; +} + +.text-hide +{ + font: 0/0 a; + + color: transparent; + border: 0; + background-color: transparent; + text-shadow: none; +} + +.hidden +{ + display: none !important; +} + +.affix +{ + position: fixed; +} + +@-ms-viewport +{ + width: device-width; +} + +.visible-xs +{ + display: none !important; +} + +.visible-sm +{ + display: none !important; +} + +.visible-md +{ + display: none !important; +} + +.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; + } +} + +@font-face +{ + font-family: 'Inconsolata'; + font-weight: normal; + font-style: normal; + + src: url('../fonts/Inconsolata-Regular.eot'); + src: url('../fonts/Inconsolata-Regular.eot?#iefix') format('embedded-opentype'), url('../fonts/Inconsolata-Regular.woff2') format('woff2'), url('../fonts/Inconsolata-Regular.woff') format('woff'), url('../fonts/Inconsolata-Regular.ttf') format('truetype'), url('../fonts/Inconsolata-Regular.svg#Inconsolata-Regular') format('svg'); +} + +@font-face +{ + font-family: 'Inconsolata'; + font-weight: bold; + font-style: normal; + + src: url('../fonts/Inconsolata-Bold.eot'); + src: url('../fonts/Inconsolata-Bold.eot?#iefix') format('embedded-opentype'), url('../fonts/Inconsolata-Bold.woff2') format('woff2'), url('../fonts/Inconsolata-Bold.woff') format('woff'), url('../fonts/Inconsolata-Bold.ttf') format('truetype'), url('../fonts/Inconsolata-Bold.svg#Inconsolata-Bold') format('svg'); +} + +@font-face +{ + font-family: 'Roboto Slab'; + font-weight: normal; + font-style: normal; + + src: url('../fonts/RobotoSlab-Regular.eot'); + src: url('../fonts/RobotoSlab-Regular.eot?#iefix') format('embedded-opentype'), url('../fonts/RobotoSlab-Regular.woff2') format('woff2'), url('../fonts/RobotoSlab-Regular.woff') format('woff'), url('../fonts/RobotoSlab-Regular.ttf') format('truetype'), url('../fonts/RobotoSlab-Regular.svg#RobotoSlab-Regular') format('svg'); +} + +@font-face +{ + font-family: 'Roboto Slab'; + font-weight: 100; + font-style: normal; + + src: url('../fonts/RobotoSlab-Thin.eot'); + src: url('../fonts/RobotoSlab-Thin.eot?#iefix') format('embedded-opentype'), url('../fonts/RobotoSlab-Thin.woff2') format('woff2'), url('../fonts/RobotoSlab-Thin.woff') format('woff'), url('../fonts/RobotoSlab-Thin.ttf') format('truetype'), url('../fonts/RobotoSlab-Thin.svg#RobotoSlab-Thin') format('svg'); +} + +@font-face +{ + font-family: 'Roboto Slab'; + font-weight: 300; + font-style: normal; + + src: url('../fonts/RobotoSlab-Light.eot'); + src: url('../fonts/RobotoSlab-Light.eot?#iefix') format('embedded-opentype'), url('../fonts/RobotoSlab-Light.woff2') format('woff2'), url('../fonts/RobotoSlab-Light.woff') format('woff'), url('../fonts/RobotoSlab-Light.ttf') format('truetype'), url('../fonts/RobotoSlab-Light.svg#RobotoSlab-Light') format('svg'); +} + +@font-face +{ + font-family: 'Roboto Slab'; + font-weight: bold; + font-style: normal; + + src: url('../fonts/RobotoSlab-Bold.eot'); + src: url('../fonts/RobotoSlab-Bold.eot?#iefix') format('embedded-opentype'), url('../fonts/RobotoSlab-Bold.woff2') format('woff2'), url('../fonts/RobotoSlab-Bold.woff') format('woff'), url('../fonts/RobotoSlab-Bold.ttf') format('truetype'), url('../fonts/RobotoSlab-Bold.svg#RobotoSlab-Bold') format('svg'); +} + +.layout +{ + display: -webkit-box; + display: -ms-flexbox; + display: flex; + + min-width: 320px; + max-width: 100%; + margin: 0 auto; + + background: #fff; + + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} + +.layout .content +{ + padding-left: 10px; + padding-right: 10px; + padding-top: 0px; + padding-bottom: 0px; +} + +@media screen and (max-width: 480px) +{ + .layout + { + display: block; + } +} + +.layout__content +{ + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} + +.sidebar +{ + position: relative; + + overflow: auto; + + width: 300px; + min-width: 300px; + + -webkit-transition: .12s ease-out; + transition: .12s ease-out; + + background: #326de6; + background: -webkit-linear-gradient(45deg, #326de6 0%, #4cffd4 100%); + background: linear-gradient(45deg, #326de6 0%, #4cffd4 100%); +} +.sidebar:before +{ + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + + content: ''; + -webkit-transition: .12s ease-out; + transition: .12s ease-out; + + opacity: 0; + background: #fff; +} +.page_open .sidebar:before, +.sidebar:hover:before +{ + opacity: .7; +} +@media screen and (min-width: 999px) +{ + .sidebar:before + { + opacity: .7; + } +} +@media screen and (min-width: 1000px) +{ + .page_desktop_hide .sidebar:before + { + opacity: 0; + } +} +@media screen and (max-width: 480px) +{ + .sidebar + { + position: fixed; + z-index: 600; + top: 0; + left: 0; + + overflow: visible; + + width: 100%; + height: 60px; + + -webkit-transition: background .12s linear; + transition: background .12s linear; + + background: #326de6; + box-shadow: 0 0 5px rgba(0, 0, 0, .5); + } + .page_open .sidebar + { + background: #fff; + } + .sidebar:before + { + opacity: 0; + } +} + +.sidebar__inner +{ + position: relative; + z-index: 100; + + box-sizing: border-box; + width: 300px; + padding: 0 0 20px; +} +@media screen and (max-width: 480px) +{ + .sidebar__inner + { + width: auto; + } +} + +.nav +{ + font-family: Roboto Slab, Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; + font-size: 14px; + + min-height: 600px; + padding: 0; + + list-style: none; +} +.nav a +{ + padding: 15px 20px 16px 100px !important; + + color: #231f20 !important; + background: none !important; +} +.nav a:hover +{ + background: rgba(255, 255, 255, .2) !important; +} +@media screen and (max-width: 480px) +{ + .nav a + { + padding-top: 10px !important; + padding-bottom: 10px !important; + padding-left: 80px !important; + + color: #fff !important; + } +} +@media screen and (max-width: 320px) +{ + .nav a + { + padding-left: 40px !important; + } +} +.nav li:after +{ + position: absolute; + z-index: 30; + top: 30px; + bottom: -30px; + left: 50px; + + content: ''; + + border-left: 2px dashed #53a2e5; +} +@media screen and (max-width: 480px) +{ + .nav li:after + { + display: none; + } +} +.nav li:first-child:after +{ + top: -22px; +} +@media screen and (max-width: 480px) +{ + .nav li:first-child + { + border-top: none; + } +} +.nav li:last-child:after +{ + bottom: 30px; +} +.nav li.active > a +{ + font-weight: bold; +} +.nav li.open a +{ + background: #fff !important; +} +@media screen and (max-width: 480px) +{ + .nav li.open a + { + background: none !important; + } +} +.nav li.open a:hover +{ + background: #fff !important; +} +@media screen and (max-width: 480px) +{ + .nav li.open + { + background: rgba(0, 0, 0, .1) !important; + } +} +.nav li.sidebar__subnav.active +{ + background: #fff; +} +@media screen and (max-width: 480px) +{ + .nav li.sidebar__subnav.active + { + background: rgba(0, 0, 0, .1); + } +} +.nav li li:after +{ + top: 28px; + + width: 60px; + + border-top: 2px dashed #53a2e5; + border-left: none; +} +.nav li li:first-child:after +{ + top: 30px; +} +.nav li li a +{ + padding-left: 120px !important; +} +@media screen and (max-width: 320px) +{ + .nav li li a + { + padding-left: 80px !important; + } +} +@media screen and (max-width: 480px) +{ + .nav li + { + border-top: 2px solid rgba(255, 255, 255, .1); + } +} +.nav .nav +{ + min-height: 10px; +} + +@media screen and (max-width: 480px) +{ + .sidebar__inner > .nav + { + font-size: 16px; + + position: fixed; + top: 60px; + bottom: 100%; + left: 0; + + overflow: auto; + + width: 100%; + min-height: 0; + + -webkit-transition: .24s ease-out; + transition: .24s ease-out; + + opacity: 0; + background: rgba(50, 109, 230, .9); + } + .page_open .sidebar__inner > .nav + { + bottom: 0; + + opacity: 1; + } +} + +.sidebar__ico +{ + position: absolute; + z-index: 40; + top: 7px; + left: 40px; + + width: 22px; + height: 22px; + margin: 8px 0 0; + + content: ''; + + background: url('../images/nav_point.svg?v=1471333863065') no-repeat 50% 50%; + background-size: cover; +} +.nav li.marked > a > .sidebar__ico +{ + background-image: url('../images/nav_point_active.svg?v=1471333863065'); +} +.nav li.active > a > .sidebar__ico +{ + background-image: url('../images/nav_point_sub.svg?v=1471333863065'); +} +@media screen and (max-width: 480px) +{ + .sidebar__ico + { + display: none; + } +} + +.sidebar__subnav .nav +{ + display: none; +} +.sidebar__subnav .nav a +{ + padding-left: 25px; +} + +.nav li.active > .nav, +.nav li.open > .nav +{ + display: block; +} +.nav li.active > .nav a, +.nav li.open > .nav a +{ + border-top: 1px solid #e5eaf9; +} + +.content +{ + position: relative; + z-index: 500; + + box-sizing: border-box; + margin: 0 0 0 -200px; + padding: 20px 60px; + + -webkit-transition: .12s ease-out; + transition: .12s ease-out; + + background: #fff; + /*box-shadow: -6px 0 14px -4px rgba(0, 0, 0, .5);*/ + + -webkit-box-flex: 1; + -ms-flex: 1 1 auto; + flex: 1 1 auto; +} +@media screen and (max-width: 992px) +{ + .content + { + padding-right: 20px; + padding-left: 20px; + } +} +.page_open .content +{ + margin-left: 0; +} +@media screen and (max-width: 1200px) +{ + .page_open .content + { + margin-left: -200px; + + -webkit-transform: translateX(200px); + -ms-transform: translateX(200px); + transform: translateX(200px); + } +} +@media screen and (min-width: 999px) +{ + .content + { + margin-left: 0; + + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +@media screen and (max-width: 480px) +{ + .content + { + margin-left: 0; + padding-top: 80px; + + box-shadow: none; + } + .page_open .content, + .sidebar:hover + .content + { + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +@media screen and (min-width: 1000px) +{ + .page_desktop_hide .content + { + margin-left: -200px !important; + + -webkit-transform: translateX(0) !important; + -ms-transform: translateX(0) !important; + transform: translateX(0) !important; + } +} +.content p img +{ + max-width: 100%; +} +.content hr +{ + box-sizing: border-box; +} + +.content__sider +{ + position: absolute; + top: 25px; + left: 12px; + + margin: 0 0 30px; +} +.page_open .content__sider +{ + display: block; +} +@media screen and (max-width: 992px) +{ + .content__sider + { + position: relative; + top: auto; + left: auto; + + display: block; + } +} +@media screen and (max-width: 480px) +{ + .content__sider + { + z-index: -1; + + display: none !important; + } +} + +.content__trigger +{ + position: relative; + + display: block; + + width: 36px; + height: 36px; +} +.content__trigger:before, +.content__trigger:after +{ + position: absolute; + top: 50%; + left: 4px; + + width: 30px; + height: 2px; + margin-top: -11px; + + content: ''; + -webkit-transition: -webkit-transform .12s ease-out; + transition: -webkit-transform .12s ease-out; + transition: transform .12s ease-out; + transition: transform .12s ease-out, -webkit-transform .12s ease-out; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + + background: #273d6d; +} +.content__trigger:after +{ + margin-top: 9px; + + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.page_open .content__trigger:before +{ + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.page_open .content__trigger:after +{ + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} +@media screen and (min-width: 1000px) +{ + .content__trigger:before + { + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); + } + .content__trigger:after + { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + } + .page_desktop_hide .content__trigger:before + { + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + } + .page_desktop_hide .content__trigger:after + { + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); + } +} + +.content__modules +{ + margin: 50px 0; +} +.content__modules h2 +{ + margin-bottom: 30px; + padding: 0; + + border: none; +} +.content__modules .thumbnail +{ + padding: 0; + + border: none; + border-radius: 0; +} +.content__modules .thumbnail img +{ + width: 100%; + + box-shadow: 5px 5px 15px rgba(0, 0, 0, .1); +} +.content__modules .caption +{ + padding: 5px 0 10px; +} +.content__modules .caption h5 +{ + font-family: Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; + font-size: 16px; +} + +.content__likes +{ + text-align: center; +} + +.like, +.dislike +{ + display: inline-block; + + color: #326de6; +} +.like img, +.dislike img +{ + width: 80px; +} + +.content__award +{ + max-width: 250px; + margin: 0 0 20px 0; + + text-align: center; +} + +.content__badge +{ + width: 250px; +} + +.content__buttons +{ + max-width: 300px; +} + +.header +{ + padding: 20px 20px; + + background: #fff; +} +@media screen and (max-width: 480px) +{ + .header + { + position: relative; + + padding: 10px 20px; + + background: none; + } +} + +.header__site +{ + font-family: Roboto Slab, Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; + font-size: 32px; + font-weight: bold; + line-height: 60px; + + text-decoration: none !important; + + color: #231f20 !important; +} +@media screen and (max-width: 480px) +{ + .header__site + { + display: block; + overflow: hidden; + + width: 42px; + } +} + +.header__logo +{ + height: 60px; + margin: 0 10px 0 0; + + vertical-align: top; +} +@media screen and (max-width: 480px) +{ + .header__logo + { + display: none; + } +} + +.header__logo-mobile +{ + display: none; +} +@media screen and (max-width: 480px) +{ + .header__logo-mobile + { + display: block; + + height: 40px; + } +} + +@media screen and (max-width: 480px) +{ + .header__name + { + display: none; + } +} + +.header__sider +{ + position: absolute; + z-index: 1010; + top: 15px; + right: 20px; + + display: none; + + box-sizing: border-box; + width: 30px; + height: 30px; + + cursor: pointer; + + -webkit-tap-highlight-color: transparent; +} +@media screen and (max-width: 480px) +{ + .header__sider + { + display: block; + } +} + +.header__burger +{ + position: absolute; + top: 50%; + left: 0; + + width: 30px; + height: 3px; + margin: -1px 0 0 0; + + border-radius: 3px; + background: #fff; +} +.header__burger:before, +.header__burger:after +{ + position: absolute; + top: -9px; + left: 0; + + width: 100%; + height: 3px; + margin: -1px 0 0 0; + + content: ''; + -webkit-transition: .12s linear; + transition: .12s linear; + + border-radius: 3px; + background: inherit; +} +.header__burger:after +{ + top: auto; + bottom: -10px; +} +.page_open .header__burger +{ + background: transparent; +} +.page_open .header__burger:before +{ + top: 0; + + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + + background: #326de6; +} +.page_open .header__burger:after +{ + bottom: 0; + + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); + + background: #326de6; +} + +.footer +{ + font-family: Roboto Slab, Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; + + position: relative; + + margin: 20px 0 0; + + text-align: left; +} +.layout > .footer +{ + display: none; +} +@media screen and (max-width: 480px) +{ + .footer + { + display: none; + } + .layout > .footer + { + display: block; + + padding: 0 0 20px; + + text-align: center; + + background: #326de6; + } + .footer:before + { + position: relative; + + display: block; + + height: 15px; + margin: 0 0 40px; + + content: ''; + + background: -webkit-linear-gradient(45deg, #326de6 0%, #4cffd4 100%); + background: linear-gradient(45deg, #326de6 0%, #4cffd4 100%); + } +} + +.footer__content +{ + padding: 0 20px; +} + +.footer__social +{ + font-size: 32px; + line-height: 1; + + width: 60px; + margin: 0; + padding: 10px 0; + + list-style: none; + + text-align: left; + + border-top: 1px solid rgba(255, 255, 255, .3); + border-bottom: 1px solid rgba(255, 255, 255, .3); +} +.page_open .footer__social +{ + width: auto; + padding: 0; + + border: none; +} +@media screen and (min-width: 999px) +{ + .footer__social + { + width: auto; + padding: 0; + + border: none; + } +} +@media screen and (max-width: 480px) +{ + .footer__social + { + width: auto; + padding: 0; + + text-align: center; + + border: none; + } +} +@media screen and (min-width: 1000px) +{ + .page_desktop_hide .footer__social + { + width: 60px; + padding: 10px 0; + + border-top: 1px solid rgba(255, 255, 255, .3); + border-bottom: 1px solid rgba(255, 255, 255, .3); + } +} + +.footer__social-item +{ + width: 60px; + margin: 10px 0; + + text-align: center; +} +.page_open .footer__social-item +{ + display: inline-block; + + width: auto; + margin: 0 20px 0 0; + + text-align: left; +} +@media screen and (min-width: 999px) +{ + .footer__social-item + { + display: inline-block; + + width: auto; + margin: 0 20px 0 0; + + text-align: left; + } +} +@media screen and (max-width: 480px) +{ + .footer__social-item + { + display: inline-block; + + width: auto; + margin: 0 10px; + + text-align: center; + } +} +@media screen and (min-width: 1000px) +{ + .page_desktop_hide .footer__social-item + { + width: 60px; + margin: 10px 0; + + text-align: center; + } +} + +.footer__network +{ + display: inline-block; + + text-decoration: none; + + opacity: .7; + color: #fff; +} +.page_open .footer__network +{ + opacity: 1; + color: #326de6; +} +@media screen and (min-width: 999px) +{ + .footer__network + { + opacity: 1; + color: #326de6; + } +} +@media screen and (max-width: 480px) +{ + .footer__network + { + display: inline-block; + + width: auto; + margin: 0 20px 0 0; + } + .footer__network:hover + { + opacity: 1; + color: #fff; + } +} +@media screen and (min-width: 1000px) +{ + .page_desktop_hide .footer__network + { + display: inline-block; + + text-decoration: none; + + opacity: .7; + color: #fff; + } +} + +.footer__menu +{ + display: none; + + margin: 20px 0; + padding: 10px 0; + + list-style: none; + + border-top: 1px solid rgba(255, 255, 255, .3); + border-bottom: 1px solid rgba(255, 255, 255, .3); +} +.page_open .footer__menu +{ + display: block; +} +@media screen and (min-width: 999px) +{ + .footer__menu + { + display: block; + } +} +@media screen and (max-width: 480px) +{ + .footer__menu + { + display: block; + + padding-bottom: 40px; + + text-align: left; + + border-top: none; + border-bottom: 2px solid rgba(255, 255, 255, .3); + } +} +@media screen and (min-width: 1000px) +{ + .page_desktop_hide .footer__menu + { + display: none; + } +} + +.footer__item +{ + margin: 10px 0; +} +@media screen and (max-width: 480px) +{ + .footer__item:before + { + display: inline; + + margin: 0 5px 0 0; + + content: '›'; + + opacity: .7; + color: #fff; + } +} + +.footer__link +{ + color: #273d6d; +} +@media screen and (max-width: 480px) +{ + .footer__link + { + opacity: .7; + color: #fff; + } + .footer__link:hover + { + opacity: 1; + color: #fff; + } +} + +.footer__copyright +{ + font-size: 12px; + padding-top: 20px; +} +.page_open .footer__copyright +{ + display: block; +} +@media screen and (min-width: 999px) +{ + .footer__copyright + { + display: block; + } +} +@media screen and (max-width: 480px) +{ + .footer__copyright + { + display: block; + + color: #fff; + } + .footer__copyright b + { + font-size: 16px; + + display: block; + } +} +@media screen and (min-width: 1000px) +{ + .page_desktop_hide .footer__copyright + { + display: none; + } +} + +.scrolltop +{ + position: fixed; + z-index: 300; + bottom: -100px; + left: 20px; + + display: none; + + width: 56px; + height: 56px; + + -webkit-transition: .36s ease-out; + transition: .36s ease-out; + + opacity: 0; + border: 2px solid #fff; + border-radius: 50%; + outline: none; +} +.scrolltop:before, +.scrolltop:after +{ + position: absolute; + top: 23px; + left: 4px; + + width: 26px; + height: 2px; + + content: ''; + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); + + background: #fff; +} +.scrolltop:after +{ + right: 4px; + left: auto; + + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + + background: #fff; +} +@media screen and (max-width: 992px) +{ + .scrolltop + { + display: block; + } +} +@media screen and (max-width: 480px) +{ + .scrolltop + { + background: #326de6; + background: rgba(50, 109, 230, .5); + box-shadow: 0 0 0 1px #326de6; + } +} +.scrolltop_active +{ + bottom: 20px; + + opacity: 1; +} + +body +{ + font-family: Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; + font-size: 15px; + line-height: 1.5; + + /*display: -webkit-box;*/ + /*display: -ms-flexbox;*/ + /*display: flex;*/ + + min-height: 100vh; + + background: #eee; +} +body.page_open +{ + overflow: hidden; +} + +h1, +h2, +h3, +h4, +h5, +h6 +{ + font-family: Roboto Slab, Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; +} + +h1 +{ + font-size: 36px; + font-weight: bold; + + margin-bottom: 20px; +} + +h2, +h3 +{ + padding-bottom: 10px; + + border-bottom: 1px solid #ebebec; +} + +h2 +{ + font-size: 28px; +} + +.title-light +{ + border: none; +} + +a +{ + color: #326de6; +} + +p a +{ + text-decoration: underline; +} +p a:hover +{ + text-decoration: none; +} + +.breadcrumb +{ + font-weight: 100; + + padding: 0; + + color: #273d6d; + background: none; +} +.breadcrumb a, +.breadcrumb .active +{ + color: inherit; +} +.breadcrumb .active +{ + font-weight: bold; +} +.breadcrumb li + li:before +{ + margin-right: 5px; + + content: '|'; +} + +.btn +{ + font-family: Roboto Slab, Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; + + border-radius: 0; +} +.btn.btn-success +{ + color: #273d6d; + border-color: #4cffd4; + background: #4cffd4; +} +.btn.btn-success:hover +{ + border-color: #5dffe5; + background: #5dffe5; +} + +.btn-default +{ + color: #326de6; + border-color: #326de6; +} + +.btn-primary_light +{ + border-color: #8caeef; + background: #8caeef; +} +.btn-primary_light:hover +{ + border-color: #9dbfff; + background: #9dbfff; +} + +.btn__prev, +.btn__next +{ + position: relative; + + height: 16px; + margin: 0 0 0 10px; + padding: 0 5px 0 0; + + color: transparent; +} +.btn__prev:before, +.btn__prev:after, +.btn__next:before, +.btn__next:after +{ + position: absolute; + top: 50%; + left: 0; + + width: 10px; + height: 2px; + margin-top: -4px; + + content: ''; + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + + background: #273d6d; +} +.btn__prev:after, +.btn__next:after +{ + margin-top: 2px; + + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.btn-default .btn__prev:before, +.btn-default .btn__prev:after, +.katacoda__steps .btn__prev:before, +.katacoda__steps .btn__prev:after, +.btn-default + .btn__next:before, +.btn-default + .btn__next:after, +.katacoda__steps + .btn__next:before, +.katacoda__steps + .btn__next:after +{ + background: #326de6; +} + +.btn__prev +{ + margin: 0 10px 0 0; +} +.btn__prev:before +{ + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.btn__prev:after +{ + margin-top: 2px; + + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} + +.content__box +{ + margin: 0 0 20px; + padding: 20px; +} + +.content__box_lined +{ + box-shadow: inset 0 0 0 1px #326de6; +} + +.content__box_fill +{ + color: #fff; + background: #326de6; +} + +.modal-counter +{ + float: left; +} + +.modal-title +{ + margin: 0; + padding: 0; + + border: 0; +} + +.modal-twitter +{ + width: 160px; + + vertical-align: top; +} + +.modal-backdrop +{ + background: #326de6; +} +.modal-backdrop.in +{ + opacity: .8; +} + +.modal-content +{ + border: 2px solid #326de6; + border-radius: 0; + box-shadow: none !important; +} + +.modal-footer, +.modal-body, +.modal-header +{ + padding: 20px 40px; + + border: none; +} + +.modal-body +{ + padding-top: 0; + padding-bottom: 0; +} + +.form-control +{ + border-radius: 0; + background: #f8f8f8; +} + +.katacoda +{ + display: table; + + width: 100%; + margin: 50px 0; +} +@media screen and (max-width: 762px) +{ + .katacoda + { + display: block; + } +} + +.katacoda__alert +{ + font-family: Inconsolata, Roboto, 'Helvetica Neue', Helvetica, 'Open Sans', Arial, sans-serif; + + display: none; + + padding: 20px; + + text-align: center; + + color: #fff; + background: #383732; +} +@media screen and (max-width: 762px) +{ + .katacoda__alert + { + display: block; + } +} + +.katacoda__about +{ + display: table-cell; + + box-sizing: border-box; + width: 30%; + padding: 20px; + + vertical-align: top; + + background: #f7f7f7; +} +@media screen and (max-width: 762px) +{ + .katacoda__about + { + display: block; + + width: auto; + } +} + +.katacoda__box +{ + display: table-cell; + + vertical-align: top; + + background: #383732; +} +.katacoda__box img +{ + width: 100%; + + vertical-align: bottom; +} +@media screen and (max-width: 762px) +{ + .katacoda__box + { + display: none; + } +} + +.katacoda__steps +{ + font-size: 14px; + + color: #326de6; +} + +.carousel +{ + position: relative; + + padding: 0 0 20px; +} + +.carousel-indicators +{ + bottom: 0; +} +.carousel-indicators li +{ + width: 12px; + height: 12px; + margin: 0 10px; + + opacity: .5; + border: none; + background: #326de6; +} +.carousel-indicators li.active +{ + margin: 0 10px; + + opacity: 1; + background: #326de6; +} + +@media screen and (max-width: 992px) +{ + .carousel-inner > .item + { + display: block; + } +} + +.quiz__list +{ + display: -webkit-box; + display: -ms-flexbox; + display: flex; + + margin: 30px 0 0; + padding: 0 0 40px; + + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; +} +@media screen and (max-width: 992px) +{ + .quiz__list + { + display: block; + + margin-top: 10px; + } +} + +.quiz__var +{ + width: 30%; +} +@media screen and (max-width: 992px) +{ + .quiz__var + { + width: auto; + margin: 40px 0 0; + } + .quiz__var:first-child + { + margin-top: 0; + } +} + +.quiz__box +{ + position: relative; + + display: -webkit-box; + display: -ms-flexbox; + display: flex; + + box-sizing: border-box; + height: 200px; + padding: 20px 40px 40px; + + cursor: pointer; + + border: 1px solid #326de6; + + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.quiz__box:before +{ + position: absolute; + bottom: -30px; + left: 40px; + + display: none; + + width: 62px; + height: 61px; + + content: ''; + + background: #000; +} +.quiz__box:after +{ + position: absolute; + bottom: -40px; + left: 110px; + + display: none; +} +.quiz__var_open .quiz__box:before +{ + display: block; +} +.quiz__var_active .quiz__box:after +{ + display: block; +} +@media screen and (max-width: 992px) +{ + .quiz__box + { + display: block; + + height: auto; + padding: 20px 30px; + + text-align: center; + } +} + +.quiz__var_open.quiz__var_true .quiz__box +{ + border-color: #19eb7d; + box-shadow: inset 0 0 0 1px #19eb7d; +} +.quiz__var_open.quiz__var_true .quiz__box:before +{ + display: block; + + background: url('../images/quiz_true.png?v=1471333863065') no-repeat 50% 50%; + background-size: cover; +} +.quiz__var_open.quiz__var_true .quiz__box:after +{ + content: 'Correct !'; + + color: #19eb7d; +} + +.quiz__var_open.quiz__var_false .quiz__box +{ + border-color: #ee4036; + box-shadow: inset 0 0 0 1px #ee4036; +} +.quiz__var_open.quiz__var_false .quiz__box:before +{ + display: block; + + background: url('../images/quiz_false.png?v=1471333863065') no-repeat 50% 50%; + background-size: cover; +} +.quiz__var_open.quiz__var_false .quiz__box:after +{ + content: 'Try again !'; + + color: #ee4036; +} + +.quiz__list_ready .quiz__var_open.quiz__var_true .quiz__box:after +{ + display: block !important; +} + +.quiz__list_ready .quiz__var_open.quiz__var_false .quiz__box:after +{ + display: none !important; +} + +.quiz__note +{ + padding: 50px 0 0; + + opacity: 0; +} +.quiz__var_open .quiz__note +{ + opacity: 1; +} +@media screen and (max-width: 992px) +{ + .quiz__note + { + display: none; + + margin: 0 0 20px; + } + .quiz__var_open .quiz__note + { + display: block; + } +} + +.carousel-control +{ + top: 50%; + + width: 50px; + height: 50px; + margin: -38px 0 0; + + background: none !important; +} +.carousel-control:before, +.carousel-control:after +{ + position: absolute; + top: 50%; + left: 5px; + + width: 35px; + height: 2px; + margin-top: -13px; + + content: ''; + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); + + background: #8f9599; +} +.carousel-control:after +{ + margin-top: 10px; + + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} +.carousel-control.left +{ + margin-left: -75px; +} +.carousel-control.right +{ + margin-right: -75px; +} +.carousel-control.right:before +{ + -webkit-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} +.carousel-control.right:after +{ + -webkit-transform: rotate(-45deg); + -ms-transform: rotate(-45deg); + transform: rotate(-45deg); +} +@media screen and (max-width: 992px) +{ + .carousel-control + { + display: none; + } +} + +.list-blue-dots +{ + color: #326de6; +} +.list-blue-dots span +{ + color: #231f20; +} + +.pi-accordion +{ + line-height: 1.0; +} + +.pi-accordion .container +{ + padding-left: 0px; +} + +.pi-accordion .content +{ + padding-top: 0px; + padding-bottom: 0px; + padding-right: 0px; +} diff --git a/docs/tutorials/getting-started/public/images/badge-01.svg b/docs/tutorials/getting-started/public/images/badge-01.svg new file mode 100644 index 0000000000..8354a3e47b --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-01.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-02.svg b/docs/tutorials/getting-started/public/images/badge-02.svg new file mode 100644 index 0000000000..0179f9b3bb --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-02.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-03.svg b/docs/tutorials/getting-started/public/images/badge-03.svg new file mode 100644 index 0000000000..bae5d5a9b0 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-03.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-04.svg b/docs/tutorials/getting-started/public/images/badge-04.svg new file mode 100644 index 0000000000..d54fcdf820 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-04.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-05.svg b/docs/tutorials/getting-started/public/images/badge-05.svg new file mode 100644 index 0000000000..07c9a64399 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-05.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-06.svg b/docs/tutorials/getting-started/public/images/badge-06.svg new file mode 100644 index 0000000000..4d12b74c16 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-06.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-07.svg b/docs/tutorials/getting-started/public/images/badge-07.svg new file mode 100644 index 0000000000..da3b5bcfb2 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-07.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-08.svg b/docs/tutorials/getting-started/public/images/badge-08.svg new file mode 100644 index 0000000000..9a36550166 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-08.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-09.svg b/docs/tutorials/getting-started/public/images/badge-09.svg new file mode 100644 index 0000000000..da3b5bcfb2 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/badge-09.svg @@ -0,0 +1 @@ +16.07.28_K8S_badge \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/badge-1.png b/docs/tutorials/getting-started/public/images/badge-1.png new file mode 100644 index 0000000000000000000000000000000000000000..8853f855bec2318d321e988d50bdc91b4eb4a9fb GIT binary patch literal 7369 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 literal 0 HcmV?d00001 diff --git a/docs/tutorials/getting-started/public/images/dislike.svg b/docs/tutorials/getting-started/public/images/dislike.svg new file mode 100644 index 0000000000..510103ea20 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/dislike.svg @@ -0,0 +1 @@ +16.07.27_K8S_like_dislike \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/like.svg b/docs/tutorials/getting-started/public/images/like.svg new file mode 100644 index 0000000000..f2365bbcc9 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/like.svg @@ -0,0 +1 @@ +16.07.27_K8S_like_dislike \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/logo.png b/docs/tutorials/getting-started/public/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..44d3512221ace62018acc62bead250bcf247c345 GIT binary patch literal 11473 zcmeHtQ*$K@)9sFJV`5Ki+qP|EVohw@wkEbYu`#jj>?AwR_q_k${D9L{-K+YtSFOJ2 z>J_D|D1`)%4-WtUkYuFARsX}i|8f%+;=d}U=+OHgKw60?hyVbM2?!r1Q2+H{uBuX^ zfIqW@=Kuf%Kv`a0LdseG`~S!P0|NkuOMt@#!0}Qq_a5MK1@OEAI9>ppE&<+GA79`4 zc@F@$%lFUk-OJDG$Iq0W=dZ8t&(CkgwELCgkI(OKfa_KH-xq-IrGD-M!1Y2V zGiw0!0Qx$*`Fwr*0yv)!uDw0JelbPfoZWu{+%Nl9-)KT_HqJih4nBy2u1yLa0KQk^ ziFcX(Akf?Q)x(!?!tKb$TgTGt?bBz^@|#=b-pgN zbN=At?&*^)>Xs+=c6{eeC+8uw=KJLC+w+UDN? zK3Cp#PZ+!8NRD{-0M&RD% zhi2AY;V|e5`0Zc+sGe~L>36kr`LS5o^1ppCbyHPT13(|jfW5p8Kzw3$q8cN_!Ofk4 zv(?fOPH_t3_Ksc%cgu|hU5@NqTRR$&70VRq3Va41uN z*b&Dxedg;s0F>`*xcfR=rco2a z{d?hQLa@^l)K#={%>Czl=f3;e%meW%eRH1`%kyKc8XcBH%LFvGO!Fv6%) zex$ozs$2Wb#SAnh++)|jF1UKa&oOjz%ejL5_Y0EJEvF@7AkYgw) z8Stillg6Oh)#l)+`U^3?8!!k7A?t~(nV}21U4B^H$;(SaglSI&WC{yQBddMv!?}0L z?d~wh_Wb-+pnCbOWI!0ZX7sW&0_rbw#CwTLPkHD2EN#_&&sTsoWJJWmos8<&t9N{V z2y|+Nz4sAXkf`&0YUF3iPeGgy6$M|VS8qSz_i+XOH3#h!uk!nr!a>1@B7E^OJqkH* zn7jLS>k-?lWY+reH5jAP&H1DHnL4;%Uy2=(UlV^T$_<)}31wP`xduqnIDefoWC(TwtP2SQY#$+tBf7==UQ7s*t0?a88Q zrVL?Y3RH;qRCxz2!%}T_G!Mua8_mmF&BI5sE{8@5dF50t-<1RNW}r&TjhiMDVzts+ zg`INf)BOLU(R}oHO^I-*^jm_dmSkRuM^1-{a2L){I~RCsp&{+W$O zMbJv+=zciEMoX<5HD9dkizOqz0fETC!vyZswdGDLVoOIg1#}Km<*`$MRDLAx$`c0X znGov6=EO+EA2shc2+hTgmA)a1@0ubBP1zswz6!s$Jwzx)7`lz zt5XI!sZw}7LBkvPN)P7bS}}4;D-4=jgy+F?L#f`CvKK6~`h<~jmywdYeCzty&X++{ zfu6>rj9E#nX&(yW81}*&6yftGGx3_CH;wlmf5Pvyd_T8lz@{M8K;`uGiUb$&!_>|w z8?+$pVMN^N9Hm-=OuQDxVo?4^L90&@oNCPEZSE5{9xwOBbLb$~-P7K7sYVDBqjWDr z^aT14iNCdp{Rt8((qFvEb zoW#gge;2BVSJz+V;u@8#=gfKr2$FC>rCk4{>ebFPrI)-{Eu^Ly0OR^rt3cFSFHyOX z*0dE4Pa>si`aj;V(1tF0ve!ASGD>hUT>058LB?1s=StE}w2?l4d@2 z#P@?L^ik@&*X)a0&M)$j6w3eJ4)g0dkg%7ucDs6SX26%%&oDFA)To0IjA>9x*?{&X zj;6)q8NV=rbdLo;*m(jLnbmxwtRi0DIx!nM#k+R!i?W6C$KME~H|Lfd^Nhp+TDZ7P z`f&EZk*DTp^1G8St3P~9_kaFVzoab`OEkBCT$2_TYG%6j5GvV)HHvs?3)z9Vk?O4K zAzzr3Kg?$|W*}q(P+R_w`lMQDQfAQ^;$Xy-5oypTj_}JaZ=>!38(% zXSVx~=~1{n<#1?rcM4ky2~}8o>>VBcRR6?p~I9~3~LD#_&hz(1e_*X6suX5r|1lC6p;0i8Hz#XeZRj{0$k4F>#I z8;bX(Uj%w`%!)B#*};A$>~0erQ&1HSTEKO=0HV4Ucd?{yelgCVw}33Lf**@tXHRF0 z$^16l^TpZlHs#MyHrk&hC$=(SBbCZOR(HP^75QL015<6FZG4r3g(ie91}vDytU8aM zC%PWq^Zkv7R7Hr!HA9Lv5?&~xL0x5#bj6CTK+UL6kx^w@Bj|-|PQ$!qIAcvb_|r~& zx=qoJxXmPvHqsdM4>lbtvUq3O;D0n~W<1GBn-G}dq>nXk{s8_sT5W1X#4a-6w;yRY#QgiAy&L~^KNL4 zQ;1RQ+!J$8d$ewA7@89Cz5T-#~Op4WX>nh$9Z&PUHq^Ip%M+1bu2=y-0bB3$RcefBRDePI_8KzQS~jQ zHkuz2T{2a)mwqAM?F_6EB7<;kd#+9ja=2Uw8{nGrGv#Z>^(o$ z?F&+n);xL*MlkR41a7MBg4BOlhXV0r6N+o)6xGE$?z!|o?JNrA%V#B32B10qq1)$NEt(bGd~uxyvprF`t@tc03HHvdNxBRV?=$C&LYm!5rm%fy;J109-DWl(Yc^hCVNn-@c{Z-f zf^=NqSG%E@mZLIIzfLe0>8jZ`0@bt@ynP5cqAtA>&1d7HQ7dzJm5%O$K1{$b3(s1u zo61j5*Z_PSr`b!mirZXDgwB^I=%mK>b$q1Q2Nqi*t(UQ}nJExy5RYkqv^X_Wmb4O# z+CN795+&l$s1Qz2+M3gou3A4qjV{sx%=?@!*#ch;znf{2CKYxt5nKmEXQJ_)HkuX}H~E={ zy{WJi^oX~Kd&iIGP9Qt&%8lf&!3C@2HM+R{KE5)ko;;U3oQfZrHAAGMLyPSNb%T?6 zPesMB74nWiPhS0iXcF6qp}1K*C+w7IF9E2}GB>yxUh)6!@>FLa?n(6-Z%(g|$~f?#iip|Wlmh_)3AFJy&XHR@KEQXA(50)~@vW8xX~(Zpyy+zD;cmae z&m1Bu#C@OYXV0fvLW{ytZ0nIG@GkgNw*u@!M|~!v-?mbFT0LWLSFgaa?x&Hi+w!q=(V%ve z7^OwYcQ&U!!5elTrcT(a9_1{Nhr4nT3I{|@^Nw*$0h8@KYue*_RD5U z7WY&9;etg@ZV!f>FHjF6k8Ox@JGbe|um%p1&!@Ah1c4vreFz(a@ zJQx>D)-dDYodSBy^&PU01TDn#Ys)O7uh>NHe;&Us zF7IE%u(>`TL$e#89Arl1FnzTjvi>W*xEPeR zo@{UR>sMUw)B3b@wFu=dL88#Hvdd%m>EtYHK_L6fS4_G-?fi|j-PRL7ac>I zE0ijwl6BRb)o&Fl)#WwWm2!*K7X_GQIdrW_T~)7xxlsi;&VcTw8MYiG7DmoCct`o* zApEVw4SFPHSsD-UG5fF)7r1w9YxG=YeQR3SgFauYlWEVBK2Xn*lwkvKXL~2l_jK0p zlyBEFmfC@MiA%{mj};sCDJ1sKEAD;w&BEQYzhwv*ff=h*;h;j<`W9OMAFC_^{6vT) z^OadOmmDj=sqI+Md9x1w3z_ai3yB0GPALz|lKu0G{w(y)ptPQAhkU4dm?cb18GJki zasQf1{OKs;O2>kmpd466bh7a+nbk2It4k?Fz03zNJ<41#6~kuNEI#X?2hi;RhG&B( z?+HWQ!T|+`q+rOg9H_Ug3>N8Zbf3@=qyMo-1J>3oRUu_&D&rHH3)|TxLj>Mnw+?SpQ6SIh0M9?1#aRs{qM4F}T(PvlJ_S?`&oNw z|L(a?Y$M#+7G)JJL~FkS#&rhuHfGPuR(H3^razDcX1{$sIH5@G#!=FltcdZCy#0Y8ZH=6XdlmcEQ#&5Al^&0m&T*|)ziJcMlMaq&$V=ms;8!G;K=s8 zC?-SN85SK?Oxh9A1G6L6*u2m~WDUl7S38!Hi-zz)eyiptc^Bc2HRCvhszJ$ml?TEC z!gMG*ZPLEc7+v?$81mSC$B_g^QGZOAMr+ODWD2AcAHsRu_8;*k3|6tA%~aP-QO%`a zDiCd&g-M>cmGrTG%`f+_T%4u&iVO>7woGQ;$97B;oJ>o`OZ4Y`{f zj?3t;yDf`kHNantt&+)UVqc$U1Lzk9oN};~T&CDTfa{cT+`$>-SvqL9`mg703#v)O zUnuY3`dfv8<&;$kqIm!t1n+<(1RJ4>A!8|9jTV^w0Zc>ugG8#<`|TE|FB7I};j?Xq zN_T8-*Iz>sN}6u(!{QLP?mjL~Dl3IrNYhS9@K~A0f`5-(;uB8O$<-EXNin_>d}9>3!2oK}deHB3adGO=lA zR1&FuoVLcWGGei*RUGP)RE&BwnL~17r1FD!(N(>%O#!yX=RED$UosK0)0Zs7^2~X) zGLQq$4tgFvpK^aayce}g3{|uZ4~zicC`k!R2M+mp(nP*Gy&;sG>H~s{ay!3@OPvaO zqR4cedHHtw5V(2c-lm0fs`Tfi2it`zisOllVHCCYj$qKDU4OhZQ`Au&xrAGIgBYf^OCAzg`XB=~Vk#zZN zzm%W5fPGS`69c!$ALJlYDiHH-^=u4&B>_p@sT=Vu;u^mq!q>G0+$6l~-e%>#6Q>`E zo`Rj3KD!V_@al1uLwC|E^w_PjWz*_N*Gp zg6Yoy^$$eL^=ZtvCtR{3+xsoCTSa_Af@x&Xnjljp!{xQ1KYJ6SQZ;BBI40e0s&!4= zo>AeAuWy}oQ8h@)J_OnD)v52FdmU*kDXJH;;ZvL5^}!*N=H?nONH0u3$u{1BwupT{ zDT5k|HMK!6eonC0s8Dwh>X(b3W(T<-%EV`H1=+U}jHfxT4_=yo(If`>uRMbPbcx0q zGmUpi`OX_Z<76>G%%{6hIbO3wTjwH!U^zcpKZmt~Uc$vTb~GnM5UB4$2c<1ElC9=E%yTYyq2R~@TW-hvuYFm_%b2^fRf`&8&3Omw8_WlWw+145yr4u{ zrT1RUh5aS~c1}ls4eNQ@IdEVCs+4ng)p!)389u}KbC8Fliw1ldFPl+|{9k)$zec3r z(bVkBtCe(0ShtF;Yeg!RRh_5lYj@XDaE!U^5Fs9tzJPi#yX?c*9x7DSG>@6k>^3K6 zf$c(e2%oU4YKt|cSVbX`sh*e9GxWUv4r1#x&b0(E6GeC>of6QttmHovk1a66(cs;W zDd79A(!Dmxt_`npf~a|z8?C;)6J5Tpv0VQKa=p(NsIi3qIQan93v(($07RSAf6$@} z`l@oKcPo)yQ~gQaKLhBr&OR}z{c&FCfNLHUC91@ZHOdk?U`h8>htuCTxb(5*Ik*Px zIw9Z3(}?aHFi_N|fAWLfT>Z)HPYO?Y_KAi zJrq*$a-02&eHm@x;Z41Z#I*-wDkrXhH61|-*(lfWDU&2pX!xKPqx;E;+rgT{!aM0? z%wwCt)C~z+lrf~1w4d?9k40I%A>+)BW^dDV`>S~=yD3^yauU5tQjwWMSq?gD7BAJe zlGpEDE5g`N=+Z+EyVY-ZUqSh0)a7xvv5avRHBT{PF3URZ8r@tg^xTF&;RB*RRHvy3 z@BYU#uM)4V3LCjBW1XQk?`+I==Yh2X#|meh&&_4K`5*i0le0La!!9q21g)o^XvlA( za@mkOeJL_Oj=w?!m)opPX1otGZ`w4sYq@9N3y3V%9##x-47d9OBu;Z112lF~k1PcA zet52u6FCVTp?|`q^!zk7d>zW{bJ}^X8D0ZHgHHJlw6wN5qX3y@I9M%GpYv*Q|9pzjXS?$ukph3o$bHrUlc1x^h5K0-TYTA`ZEO?9 z1xl$s;+yp67SdRb4CaNn2*}itGl=pRK-wP4*sX#K?Fub}f1ANZ;TF9%iVm)=I0>xU zNpK>FXM9d0B;i_&M#HY=CXl+c2q{J^PT+ou=~#i^%}g4-Le*r?c{4J|zUz>NXdT4B|NXcv2sb#rFFPwNv)#G~J6Cq<^7<1%^G zsG9gi`b1F?Tn8FLEHoh$mJ{%|*14Vb87eMhl?%`aOOrS#DdUs;L6dH+6Ea40h?x8f zp>a#4MdvB~ym?cV0>MY`&Y{0|#n!Cu>u(f|C>7y_1P@N95Zruq8Yd(r-OQ)}R&>k8 zCQi6XFulq7tlGeneyLz(cvGz3-=sdBV`Y$-b~d+501Xgcy>&dQ*3BT zW)7E#&CL`grgjsj7#TH9W;vQyrh;D?RY|wS_m@sB;TgNk@n56|rDj;Z$S*nrpCJ5x z@3U1$8=^tbhGp~kOSFwfUbx-q-)LT0d9G!^j~aWcp80T8FtRImFpuqvdj$+qxW-IK9MP|VX4+FAZ+u=@!*e9Y(vJwQ)g*dZoa*`{7t)@n0qyFEHVB~a-9z549}Q&4M{P22GafjI4JX>PaN@psu`Fk$YUcaBk zUNn60zKph7$FwyJ_Q^$zD6Qh9g)zgd{TDPV)fqO_Z4o)@7R{eGfE}~*G|JS& z%3`$4i$lV>ZMt?XP#-Kdbx$f}s9;NriyPRXcc{Nn-{xcIqc==b`fd(ud;6X8_=cHX zt^SSN&-QxW2)ySugA9G^ZW{~YUC&)I9?F3AE|a!=3{T;)_lIwl*EWwRDn0lk#|EWE z^4!$MxetT719UcmQj^x%tYBmI5%FM!Y8ko?-9N^0uJ`4a{ZK?%2yBiRy%M-8DcndS zCx!Vn^>igNahtXPl4G1yQl?BuGydOA4jQRW^tG-GG4Pi;dSg{_UI=EpvhVCiW zzN65NdiNDCJI8Gz14z$eHHd8*-xkzWIGFRCv25D^z1Dj#ra zPDgYU{J{kcVgN(0BuwnyfRb~6KC;Q258Fbl>QpL0zS6huC|yLAmclSuWws2qg?6}} z!OII0`%ikmqDP`^ngZ6Xb3byQvD*`}lNGThFh|mmxhbP;UV(iaD4VRt z4AF(* zSEG3OZJ#sygP2B(N>yDwvC4|>PfV9}p>1z-g|k%&X2qD>xZode9Cev5dh0`;s@0t$ z&Lg8z3{Z9Zkf&#?52`&R6Bop)IyRfd4~wn_)Ra5pL9-FF zZ(nW_%k8;X3nUTh6Vnx85Pm>|JY&}288ayxvRf>5mO}gdL^a7!Kdi6I@`xC9oY7|5 z*xDQDjytu*z|pdN&Rwz~?~Lz^rI3!6*tHppuAN(lvS{W^fpQIwhA>En=kh=BOS_Y> zShhA>PXE1qkrIA>Zsru7tk=H_9z3ZN1F-8K;Byt#WOQGq^bNm znFAI-aP-w}de%QsbkN<*d=vVX$B@3{dFo46ZmsT9A`1&FIds*(+GiYi9p21e4blDL zC#_}qiGYErvbE1hiaFK(+v&Z^{|84L$B&5oooAq9b>3zI`J3AKQ@nn(SMQ&df6mJt zj_hqKG8X}LLk+m>U&)0#boP1b9T4A(Qr^P_*Er84lkoC|(<=1d7l_QIde{AEV6e9{ zZS%`*?A_QJMNdsPKDA7ro0>2?{w!yYlt!2nBxa)egcpgP?o3Lroee57+YrI(HoS7a zU?+*vZHhPBa=kY@4_YcaVMuoo008XM|GWSK*#aaqiLZM;(VOlN{>SIjRN>)!sD)xg z4xn*^`9`INM>tCLBP(!>(U>Y|6FfKpjV+UHEB}`kThQ>zz5OeER{hw&&(p$^NJm#{jSWq0B$cm-QQ!f-Cc3JoM7mLf^mz|9KN9pA>K?JrI$;I z&+OM(k=}AxLyCup#X>(&ct_;x9^UhjGz8f00cJTqBTfS85IsAF)pa&~_w~xCommsqHkB*4@^Uf_!)2()Wm?{d& z{HFY+lW~qSNJS|BD3@vJwy3&J;c@5BD!aCqf%qVM;B?cx(YDYoS(B>$upja6XX^yI z&PG#E9DNQxLG1#sdsXogH5o1qxsGifEf-&;x(ta@uwuV~La9iCz-P9``W$o&PsZ$8 zF-neAwROfN8+V{I{lDO3v)X+-5uj0p?iq5xMR>;xe+{+Mcs_y!Qtd;MJ*xJ4Yo!Ww7xny<3 z=!-^~KNqpL2m2h2F$_Z)GGvT8@0`|4&I`UaW0*_$F!Ot3;=RKN8`a*GGmdw{e28fz%p;~pZ3|uNrHI+^TjJc>;4U8{R(wwo-I)d38_iy@C1WqHW`B| zkuAE`%3)L5-_+974NdL$3qNZ^vaRx&sm{f6O2Yqr*Gi1ow4{p+YO2KEaG{(TY8x*P zT_2YSlbuwA%+KD^tH+aokGlHE@A6Tft96qG*0?8J)6y1Kv~ZhL2L4^j|LpP8G-IMa zYQRb^FC%qLa`8jBcb74^4`rpV0M!Ld>@5^!TSSVLe`#l8WXn~p5ijG{+dH}SPvkeS z=cF^SONq+^i+d5>tqLI6<7jbTEQ%bo8}}4OER?>;O1as z;C;l1D*_FRZ`ca=YfdPzY>ehjULdK^MUdtE#*#S>i(rJwB4tLKC3sv8#2!XdqpF|4jy{<3UO6L*b%|fF@AbOdsy05$nEz%DS6w=tS8dazAd1)Tw39Cc;=*c8nh!h75m~7vw1ruS9|6 zxOPEZP)t$9Y!!N4P*NL*GK$3Mf>K)F1d}oZ8H$7VnBHB?qlR9g6t(L%cKz%8G4`FfbJKqz9AY0+#H> zzSz$n*IYA6o+{U+=xs5EENqFPqK)_yU8K^VQgB|LJ&%G`>OFHlbrQ|8JW z&C1*xaDov7NteuJuDV$7z$l7NPCQ)=ji#iQt23b{#e^UQ!5r8=?p4QIj?VJ=?+;|Y zDwVt$4rrWWl#bMNP|TFYIdR1PYpJaQ$SyntugGo$RjRDRnF2g|N)AHdVa9AV=0+fp znNvgg-@t1~s(?Yde4(aAzsNNBc}|!OK%cxfWjsEr^d=70>&JSc&i^+R4 zaipykK?+ZOON>S(FcYykyar@RY15~4kHmenzsSnStIY$67$&NcTD}R3DGovG>}Or( zfX!>R66=LzA0-#)t2oKuDVVsNOfZwL#*R^ \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/logo_2.svg b/docs/tutorials/getting-started/public/images/logo_2.svg new file mode 100644 index 0000000000..7833a726b3 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/logo_2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/logo_mobile.png b/docs/tutorials/getting-started/public/images/logo_mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..7eac53acf7248e2b1e59b26f934c617f8552fd59 GIT binary patch literal 2084 zcmV+<2;29GP)Hu-;0CVg8{r~>{|M~p>@b&!wd+g@#{q*?$9)a!J==|&P z{`>s@`TG9+{r~9j{qgqwtIGI~x%B{e>;Qc1?DGCdlkWg@>)q=71bplwgYE!u>f!AD zqQv(Ab?Zox@Bne@Yo+patMiDq^)H9+0C(%z=ls;=`x1Wb*|bL()Z^WyFOg|qd};QIh_>pzX}^Y{J$bn6^|?WV`~q{jF6`u<&< z@jZ<15Pj`SlkYr@?*Mn~-0A#PnDD{Z`c|3n_4)qx`Tl#a^wHw`Q z>-^^L{mI?>j=1%|*ZP>h_BV;|dam?+uk`Zv{uO`iW1#Z2(D}aB`klh|P?qpqoAJWf z`Q`8Zs>%3Xo$GA$?sq;mU@Rq&y zug&0D0^{ zj_kohJU!L);%lLk<^nbDRbE)%-xAicH?t!uNXruC-!SN_fM7Z z*XH|?y7h^*^^&{wv(Nd|{p`i-~t=JknlH)?_!_vZKw0oR`;C%00mS@L_t&-8KuF6QyYl_$MN5n&Q2!6 z;0^;U?k>SYq3-Uksk?hSZO>ijTsgnz?%wDA=e*4(uvrMuyZ8BM7M`}@D*ZoRd~5{- zMoRT{wJZag?}2w$oxTQR%{Dmsa*1^Nat6#!y^c9#%OCWqa zs0qnWoP<}`7MfI>r z6Y_l-K}CHZc67SH=JVJUkx?#d+sKll}v;`S=3 zAFfKFnrtk2hqrR_gsCW_gM5wqB}X+ObeV|mya8F#;2BveHetJ1pb2lWT;taBg&amN z(0xU=Fzl6W6_!F%jxm0$7;}^YIR<*M97$Hh5OgY{YYUduh8+LmkYX0mt2p1pc5}Hb zzz$hzMzK}P5%gzPDe4<+mcw%op4x%sZczC^inQ@fEI$iFnjy#E8C2AEZpm>0SlHBn zrJ=G9%g+C#V_9GSEud14Pr0V3bn4{Dg*2&tJ(HXnP-q35lVcuNWlJT;kfRq~mgIQ_ zm%FBh5jWT^$MZmeB8(IucR2MgK(TC< zz->7$Q>};w7RoUn{EB$@Q=lv;C8vP*jbT|*ffhOLGa^g9&l{5C7@*LFkuVX3l0sf0 z(jI@`GYk~T@jPj=tl@3NDFrV288=Tx4dYVw1B>J^0=~tP^7yM9p}Dxd-HF>#Lyp&3 zDrrBhirO=GSy~n`cN#apH%d%%Uhe9Z#1t;u^zAxD_3?AbTuF&+!IeN(HV~-&-G`>6 z5n^shGE)E0=LL4;0Hc4Dt&+7;7hy#iYqQR_hK%#z`%tz9V$R4`1bko^d*%kVES4?k z>yVx%O)f?;e4>aJAnSXF0q+7?j6;x-ESD6Yw2sUQxg-Hk%CZaCAZ-H<%W@02E0z!FPBnB$qLw+GRUR)OJ(xO0t=& zsLu=8Wyq!4k0ogS~BE3Wt4$ysG zZb?k?6S>vke@$_INKUC-c9VH+b2hdWzdzp05xG2)L671M{Dy`K#n~9(ill-UUb;}! zW=ISCJfb*Fg_O&!B%P~<9G}o@DBfn41T`VJn)Mz{@^l8ZnotCJa#;hv(1cvV$(rIm zzLzwvovbdoR9&K6<5rP5UkQ{m^s!>hoiAvT(&PDxS?Hx*iFmeA{FxrYx~)8?#0tW^ zWoTBRM)sSU#{4_vX;zQX{6N!6f_a+7cNsmV89YZyon~~to9mj1xt6kg%^)?vqng>q zW>&XpS}&IItf^VNn?v`jbEdHc8uB%(wj)f>UtX_=acW-DG?v$Es{a9pD(%AZbcBrn O000016.07.28_k8s_visual_diagrams \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/module_01_cluster.svg b/docs/tutorials/getting-started/public/images/module_01_cluster.svg new file mode 100644 index 0000000000..054a9f78eb --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_01_cluster.svg @@ -0,0 +1,467 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_02.svg b/docs/tutorials/getting-started/public/images/module_02.svg new file mode 100644 index 0000000000..7742de99e2 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_02.svg @@ -0,0 +1 @@ +16.07.28_k8s_visual_diagrams \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/module_02_first_app.svg b/docs/tutorials/getting-started/public/images/module_02_first_app.svg new file mode 100644 index 0000000000..a382554bff --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_02_first_app.svg @@ -0,0 +1,576 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_03.svg b/docs/tutorials/getting-started/public/images/module_03.svg new file mode 100644 index 0000000000..7873332414 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_03.svg @@ -0,0 +1 @@ +16.07.28_k8s_visual_diagrams \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/module_03_nodes.svg b/docs/tutorials/getting-started/public/images/module_03_nodes.svg new file mode 100644 index 0000000000..0c7e61a980 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_03_nodes.svg @@ -0,0 +1,521 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_03_pods.svg b/docs/tutorials/getting-started/public/images/module_03_pods.svg new file mode 100644 index 0000000000..b63f415f30 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_03_pods.svg @@ -0,0 +1,484 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_04.svg b/docs/tutorials/getting-started/public/images/module_04.svg new file mode 100644 index 0000000000..0e37631afa --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_04.svg @@ -0,0 +1 @@ +16.07.28_k8s_visual_diagrams \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/module_04_labels.svg b/docs/tutorials/getting-started/public/images/module_04_labels.svg new file mode 100644 index 0000000000..31cd8638a1 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_04_labels.svg @@ -0,0 +1,710 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_04_services.svg b/docs/tutorials/getting-started/public/images/module_04_services.svg new file mode 100644 index 0000000000..a971ad95dd --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_04_services.svg @@ -0,0 +1,463 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_05.svg b/docs/tutorials/getting-started/public/images/module_05.svg new file mode 100644 index 0000000000..ef209965b9 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_05.svg @@ -0,0 +1 @@ +16.07.28_k8s_visual_diagrams \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/module_05_scaling1.svg b/docs/tutorials/getting-started/public/images/module_05_scaling1.svg new file mode 100644 index 0000000000..45458cf88b --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_05_scaling1.svg @@ -0,0 +1,313 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_05_scaling2.svg b/docs/tutorials/getting-started/public/images/module_05_scaling2.svg new file mode 100644 index 0000000000..53971c5a21 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_05_scaling2.svg @@ -0,0 +1,395 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_06.svg b/docs/tutorials/getting-started/public/images/module_06.svg new file mode 100644 index 0000000000..411455d721 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_06.svg @@ -0,0 +1 @@ +16.07.28_k8s_visual_diagrams \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/module_06_rollingupdates1.svg b/docs/tutorials/getting-started/public/images/module_06_rollingupdates1.svg new file mode 100644 index 0000000000..53971c5a21 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_06_rollingupdates1.svg @@ -0,0 +1,395 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_06_rollingupdates2.svg b/docs/tutorials/getting-started/public/images/module_06_rollingupdates2.svg new file mode 100644 index 0000000000..9773502d20 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_06_rollingupdates2.svg @@ -0,0 +1,543 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_06_rollingupdates3.svg b/docs/tutorials/getting-started/public/images/module_06_rollingupdates3.svg new file mode 100644 index 0000000000..15bd6e6033 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_06_rollingupdates3.svg @@ -0,0 +1,493 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/module_06_rollingupdates4.svg b/docs/tutorials/getting-started/public/images/module_06_rollingupdates4.svg new file mode 100644 index 0000000000..a326317a50 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/module_06_rollingupdates4.svg @@ -0,0 +1,508 @@ + + + + + + + + + + + + + + + + + + + + + + + Docker + + Kubelt + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/tutorials/getting-started/public/images/nav_point.png b/docs/tutorials/getting-started/public/images/nav_point.png new file mode 100644 index 0000000000000000000000000000000000000000..f9873cf9ac407f21f4b23cbd5b51fc875193746d GIT binary patch literal 1223 zcma))Sy0ng7{vo>X&JEuSzKCWC|WH{tqRy`p+pj56i``&p}`ugK`SVWN|mApN=n$Y zid7U80mCNLAYui-Q-v&Juj1)Me!XXWgX>huO z-F)oj!#N#p>DZS6cY;iKW`daoW;VRCaeyEPth-?4z&i(r2y(&B#ZdwL1UP;l{&@(< zN6-TVKg8)j5b_8=6(Y0<=Zg?tjEE9&OAsYQbSYxXaIp-(mf=zbE>|MH0#_<=tr`i{ zxKWLy8r-bGty-i!Luwt;>X9x&Rs*scakmjUV&sbP`*R4Ikk>T#6a~$A*n+}VJZ?iV zK|4y?@uVF>f)12*qMSg2icVBYP)*Q<+Lx&9Mnf+e`q0=1F+o3`_v5btG!39-2yMf7 zF#^eJbdBPr6g@KZjA3vbLlYP#c!QBiyq?796r@uapT@Wx6LL(>U`l~$1>}mk-8{3Q9FpDyRqr)M~uTLC9D9WFj{kPB=Tckjyq&?{Ri#9`ZSIG>97+6`Pz=P*_?~ zS>O7iXJBx6WK=4ZjZaR?59``uKOPBfzjUtxudeosdUp}?XlN{sHMcwsDlCt_y zYs1l9QyoVR(ig9^2^5cCj2jDa)$aC56KUdQ2l7FOxHx#?olckcexd zQT4IotHq_$R%3x@ZbWg?J*nk!Rf!f)vImn5$L#g*nXayG&9-BbfBBy3`-$e(pFf=3 z6lONSeUB`v+O|GG<4S-f**N4v{Eu8O4a>%LkDWQ^JZP!cGxYj<7fLBtuKP!Sy0(0M zpc(H}&1Q#4t>jY%jhYvD!do0egT3LG*$a(Q>}m15B7Qk*FW+QmKyAG2wku68=*{NI zE_S(-y;hCH?ugj8?Q5@^VDgE^jR_5p78p=sZz;r4!>Z8cPrOLLb?C{ToW*sl}+hQK= z_c$KBjLTZa>fW_ZU*W-6shOx(TJ^y~6AfLGUOqp;#q_LK=S?jQTVbF7)`{tFd={~m i2daa-g)f#Q$rre@{j~*te_9ejBQa=B)ZFa{!u|nY&k9li literal 0 HcmV?d00001 diff --git a/docs/tutorials/getting-started/public/images/nav_point.svg b/docs/tutorials/getting-started/public/images/nav_point.svg new file mode 100644 index 0000000000..42a6ae4bd5 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/nav_point.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/nav_point_active.png b/docs/tutorials/getting-started/public/images/nav_point_active.png new file mode 100644 index 0000000000000000000000000000000000000000..f288046b6f65738a570f8a1220787a1e8906bdfd GIT binary patch literal 506 zcmV)SCFfjs0dMdN zOSp)|xPKe-1BbbUHT=X2jCahB<9W=lMSbBg)0&TA7f(>jsINucZmgRw0%iscY~cY$ z^E7SKXsp}9r|9?JFgNiP-?7l6F0T^YjecJ+p9kg|Ht`L&`UL2v+u^Z^*9F_!f7=C-{K<7X3 z240l}vmAacopl5$BhU@3b`G8elLmTwKp@+A96p&aGy}Du_&}csY+e|O5A \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/nav_point_sub.svg b/docs/tutorials/getting-started/public/images/nav_point_sub.svg new file mode 100644 index 0000000000..f3f731c1c4 --- /dev/null +++ b/docs/tutorials/getting-started/public/images/nav_point_sub.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/tutorials/getting-started/public/images/quiz_false.png b/docs/tutorials/getting-started/public/images/quiz_false.png new file mode 100644 index 0000000000000000000000000000000000000000..028242c2ea1f8f8e1725666180883fa84b51ec26 GIT binary patch literal 2531 zcmX9<2{=@1A0MGCNk!>u)4jPZDv2@nF=N-*C4{kb;~^Q#Z7dO2pMC4IZ17K6P;m~ckE&u?arTkp$Hu_)#)pR!mtDsLY{b}JkKl4z){Nm4k@J1-Gx%vO< zcRf9@x{ZMGdb>e~hJXTW1|SqttWBubk=qEpEdv8GQjZaN7lakAkSL})J1-i*PF70d zPVG~wlQsX}e?dV0;D_C0e)hJR{`M{hC^IQ;7tkEKZ3?Bi+5IF8@&UQ&fEi9fE@&wT zsE9#fWj+G)%!kq3mPY!$AgZG!8LrEDQYQR5%dV~3f@{;9t#{d?%y>gX!0>xI`UXAt zHZ$rT_!i8v0%mjs-P@HB`Ukr>pBWcLb9dssf5-jj1xRD3rCGSP2F%S-tl{k3^qs15 z0bzvS+XWH>mtdR#ynam&^rZ!&xh;6!;v%R6=h+k9o0p(a0GrK8OJ-M=u(MJqmPWKY z-kiEBDjX^#EpVr&*`)={lms@elhXQfyGcg94NM? zpiqo^f$WS&yzaN$Hyw0e54sr?gcp4W#e`C=O~@uN&|xLU>^>9#xc@X#Om`>C&d&w} z0%mL^AQp)>H)x*DtmJqxjY{|Ppdes?SS*;D5Rw)t=K8#@w^U0ba9*NqG9%a@;PXJi z1ruXp9+%(OEoL&sY&J-PVr~e6i#Z%lS)rJ+y(>s<70tz#Y6GWx-w>^@vEuIw7rwC{ zXHu=Z} z%bEY7m-niT_ojoLp3JE%*?ETJfBYbv`y$#{7cP^y9j)MZ#f-em{%^K`NZ>X$fFl;I zuF&uJu#z9pZ+r2F2X`83m{<%W$PW~gj=o9vas@{@8ftU~JQ#IR&h{>lJqnvrQZk8R z3EtordHQKKVNxeV1&7>=h!iTnU6D=bu|WN*rn0dlQaHX^qXExaYC_NIQ?O-ND%Ef? z?obQiTgvlG`9!QI$|k!#vZ30w=#KVzHix2ljFLW}u2J!P*eQhJ<(eGeeu7_{?QGB< zns=DE<*aolA?fh(h>+xp_D)~4I_}BcFWjWOg3um=jy3L=faDyWozn4VnJf!@uicG- zqmtU-S(hf-m?K<+7G9QOy_Bt#KdK-kWlr2Uh#XHmJLv9Tec@=9dJ$_Oj@q>Yn)sB? z-`0C&(_#^M7pp8YY^#ILDytu=wn6!u#Drm+i4?-O7u4JU?0wGYLRb9z7$)wltUG0P zG3)VxyvzKV$uBJc-b@i<5IiA-nztx5=Uyv`pAtHM?+C~_6?`IYy^VTBec?Vgvp>sE z(J(H>4$*{$`BFpO91a*Jq)Cuxb6rorYK+seXuJ8hPzk4}r^Cq$s3hm`v45nr2 z%?l^w1SW-D{^JPaP>*c>9t$+x3q!U#)$RUA7!~G%#s|$ecx4%hkm2_!H6b@Rx$15s zt((1j3xUrk{mEA6D(hQE<1!nHN?{M`$70RY52v5crAQm#%(05(n!MS$7gHk3bWWr zD{>!AK!%*+wG#|i20k6>dGe4ZD=F@b2)`w|s9N!654Znu0;{tyFAO`rWT&t+=^$Fa z`BZbBpreCtLJ0T6YqL`(uBg6!DN%oMHdXxleqB{a{pe_7RHvdy>)3p#RHbKPRJo$a z_Lzp&BOk?@>+$PWz3xe8SpI5V%a>(UNb^B56$XDNLI*Mvpjkq{{gu^0xK)eyQkHJV z%>h~W{I2z9elI;67kJ7Py>E13w z3lS6Aq`T+l%?Ov?$#)mVPuaeXO45d9W=s`bZ5udE{YxcSs!9@uRC4A2zz8*e4DNg6 z!dLX_a;km5@8foX3Q?l?KV<1baZUH5nB|zI*1WEoNu@Kdrt+^k7^!$2ZM9bakx5Wn zfq9cK%YxTS8F}$%r(8%4~+1bot8xUobk(7y~O&SMS~ouA2D{V2p70TgP~A+Vs+6+S7VQq{zVQnz8WSm z?l4(&RkuPu_j{QPOA4v_VaX`kV`#D_E$E~yGZ}_ib{dMPiJ|Ea$!kWrN7K*Wmakpu z@hGY9D2V}s$XZQOq&}=7V)>Teh|b1AZsSsFdX7&!_9oypc;_`frCB89I2pbZNOX)iX1Fvi3tq zIeV+jFI*!4&iDMh$&DF9X?k-G&bJ*I@Qhe+{bWC)u`)|WVZ|ms=PoEi@m{}o_6A_{ z3QhOVJ6At=Y}juEi?736A}Sw;Xd?>iUikR4ybC3jY zG(~kh{Hh?G>YB0__%mPIGX8R?9?89qb@}w6wmx_1;qY~jc~cqMm9NjN{t0+VhIxZu61cz|P@aTUXki>i6e)Adb_a1h2saoyT=I$5ZEw*Oo$Dch<5}Ybg%3u9e zD|dvD8!E9JIior{5{XRQU#)%bc(&uBo3w=T(gJP_5@FvEe?%;VjMBiR_GFvE~D zCf9!pOZ5-jcgIqR*ZD{NkgO_tx$efjVs&{IukYHAy93U}r-wE@SL#?YPj&ql?*8iE zKlR~lLEW)K+>g}?Ghg(>E66lfnp#=E2l{NT!TCG_3fIKM3l$xepig1gFhlTX1hKKO KH*Z4v{`EiX^j{AE literal 0 HcmV?d00001 diff --git a/docs/tutorials/getting-started/public/images/quiz_true.png b/docs/tutorials/getting-started/public/images/quiz_true.png new file mode 100644 index 0000000000000000000000000000000000000000..0573d9312e3e7b011b2307443cd4cb8d02b93640 GIT binary patch literal 2556 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 literal 0 HcmV?d00001 diff --git a/docs/tutorials/getting-started/public/images/twitter.png b/docs/tutorials/getting-started/public/images/twitter.png new file mode 100644 index 0000000000000000000000000000000000000000..ec490d7a9e2cb48ce31acb50f08f7f7ff0e00d48 GIT binary patch literal 3846 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 OyQO2OU2((y+5Z8e{CfTX literal 0 HcmV?d00001 diff --git a/docs/tutorials/getting-started/scale-app.html b/docs/tutorials/getting-started/scale-app.html new file mode 100644 index 0000000000..9a4a1406db --- /dev/null +++ b/docs/tutorials/getting-started/scale-app.html @@ -0,0 +1,58 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+

Module overview

+
    +
  • Scaling an app with Kubectl
  • +
+

+
+
+
+

What you need to know first

+

+ What are Deployments
+ What are Services +

+
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/scale-interactive.html b/docs/tutorials/getting-started/scale-interactive.html new file mode 100644 index 0000000000..ea0de03c48 --- /dev/null +++ b/docs/tutorials/getting-started/scale-interactive.html @@ -0,0 +1,49 @@ +--- +--- + + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+
+
+
+ To interact with the Terminal, please use the desktop/tablet version +
+
+
+
+ + + + +
+ + + +
+ + + diff --git a/docs/tutorials/getting-started/scale-intro.html b/docs/tutorials/getting-started/scale-intro.html new file mode 100644 index 0000000000..b36757d755 --- /dev/null +++ b/docs/tutorials/getting-started/scale-intro.html @@ -0,0 +1,124 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+ +
+
+

In the previous modules we created a Deployment, and then exposed it publicly via a Service . The Deployment created only one Pod for running our application. When traffic increases, we will need to scale the application to keep up with user demand.

+ +

Scaling is accomplished by changing the number of replicas in a Deployment

+ +
+
+
+

Summary:

+
    +
  • Scaling a Deployment
  • +
+
+
+

You can create from the start a Deployment with multiple instances using the --replicas parameter for the kubectl run command

+
+
+
+
+ +
+
+

Scaling overview

+
+
+ +
+
+
+ +
+
+ +
+ +
+
+ +

Scaling up a Deployment will ensure new Pods are created and scheduled to Nodes with available resources. Scaling down will reduce the number of Pods to the new desired state. Kubernetes also supports autoscaling of Pods, but it is outside of the scope of this tutorial. Scaling to zero is also possible, and it will terminate all Pods of the specified Deployment.

+ +

Running multiple instances of an application will require a way to distribute the traffic to all of them. Services have an integrated load-balancer that will distribute network traffic to all Pods of an exposed Deployment. Services will monitor continuously the running Pods using endpoints, to ensure the traffic is sent only to available Pods.

+ +
+
+
+

Scaling is accomplished by changing the number of replicas in a Deployment.

+
+
+
+ +
+ +
+
+

Once you have multiple instances of an Application running, you would be able to do Rolling updates without downtime. We’ll cover that in the next module. Now, let’s go to the online terminal and scale our application.

+
+
+
+ + + + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/update-app.html b/docs/tutorials/getting-started/update-app.html new file mode 100644 index 0000000000..d5d9f05c95 --- /dev/null +++ b/docs/tutorials/getting-started/update-app.html @@ -0,0 +1,60 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+

Module overview

+
    +
  • Performing Rolling Updates with Kubectl
  • +
+

+
+
+
+

What you need to know first

+

+ What are Deployments
+ What is Scaling +

+
+
+
+ + + + + +
+ + + +
+ + + diff --git a/docs/tutorials/getting-started/update-interactive.html b/docs/tutorials/getting-started/update-interactive.html new file mode 100644 index 0000000000..13da0fc43d --- /dev/null +++ b/docs/tutorials/getting-started/update-interactive.html @@ -0,0 +1,42 @@ +--- +--- + + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+
+
+
+ To interact with the Terminal, please use the desktop/tablet version +
+
+
+
+ + + +
+ +
+ + + diff --git a/docs/tutorials/getting-started/update-intro.html b/docs/tutorials/getting-started/update-intro.html new file mode 100644 index 0000000000..0d3a3b2cfe --- /dev/null +++ b/docs/tutorials/getting-started/update-intro.html @@ -0,0 +1,139 @@ +--- +--- + + + + + + + + + +
+ +
+ +
+
+ Back +
+
+ +
+
+ +
+
+

Users expect applications to be available all the time and developers are expected to deploy new versions of them several times a day. In Kubernetes this is done with rolling updates. Rolling updates allows Deployments to occur with zero downtime by incrementally updating Pods instances with new ones. The new Pods will be scheduled on Nodes with available resources.

+ +

In the previous module we scaled our application to run multiple instances. This is a requirement for performing updates without affecting application availability. By default, the maximum number of Pods that can be unavailable during the update and the maximum number of new Pods that can be created, is one. Both options can be configured to either numbers or percentages (of Pods). + In Kubernetes, updates are versioned and any Deployment update can be reverted to a previously (stable) version.

+ +
+
+
+

Summary:

+
    +
  • Updating an app
  • +
+
+
+

Rolling updates allows Deployments update with zero downtime by incrementally updating Pods instances with new ones.

+
+
+
+
+ +
+
+

Rolling updates overview

+
+
+
+
+
+ +
+
+
+ +
+
+ +

Similar to application Scaling, If a Deployment is exposed publicly, the Service will load-balance the traffic only to available Pods during the update. An available Pod is an instance that is available to the users of the application.

+ +

Rolling updates allow the following actions:

+
    +
  • Promote an application from one environment to another (via container image updates)
  • +
  • Rollback to previous versions
  • +
  • Continuous Integration and Continuous Delivery of applications with zero downtime
  • + +
+ +
+
+
+

If a Deployment is exposed publicly, the Service will load-balance the traffic only to available Pods during the update.

+
+
+
+ +
+ +
+
+

In the following interactive tutorial we’ll update our application to a new version, and also perform a rollback.

+
+
+
+ + + + + +
+ +
+ + + From a4272274bca66cc18c39e0a5c395e294617cd2c9 Mon Sep 17 00:00:00 2001 From: steveperry-53 Date: Mon, 26 Sep 2016 16:46:39 -0700 Subject: [PATCH 03/21] Remove extraneous footer. --- _layouts/docwithnav.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/_layouts/docwithnav.html b/_layouts/docwithnav.html index c6c8803120..16b1235bf5 100755 --- a/_layouts/docwithnav.html +++ b/_layouts/docwithnav.html @@ -82,5 +82,3 @@ -Contact GitHub API Training Shop Blog About -© 2016 GitHub, Inc. Terms Privacy Security Status Help From 4634a4b7034deaf3e08f1e3be623a5874a5a6ca1 Mon Sep 17 00:00:00 2001 From: ankurshukla Date: Fri, 23 Sep 2016 12:50:42 -0700 Subject: [PATCH 04/21] added Nuage Network to partner section Signed-off-by: YuPengZTE --- docs/user-guide/jobs.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/jobs.md b/docs/user-guide/jobs.md index 59e09e7bcd..a6baa6223f 100644 --- a/docs/user-guide/jobs.md +++ b/docs/user-guide/jobs.md @@ -238,11 +238,11 @@ considering one set of work items that the user wants to manage together — There are several different patterns for parallel computation, each with strengths and weaknesses. The tradeoffs are: -- One Job object for each work item, vs a single Job object for all work items. The latter is +- One Job object for each work item, vs. a single Job object for all work items. The latter is better for large numbers of work items. The former creates some overhead for the user and for the system to manage large numbers of Job objects. Also, with the latter, the resource usage of the job (number of concurrently running pods) can be easily adjusted using the `kubectl scale` command. -- Number of pods created equals number of work items, vs each pod can process multiple work items. +- Number of pods created equals number of work items, vs. each pod can process multiple work items. The former typically requires less modification to existing code and containers. The latter is better for large numbers of work items, for similar reasons to the previous bullet. - Several approaches use a work queue. This requires running a queue service, From 5e92903656e9ff6ec79de2b99e7846257905dd39 Mon Sep 17 00:00:00 2001 From: Tarun Chinmai Date: Tue, 27 Sep 2016 16:47:29 +0530 Subject: [PATCH 05/21] fixed wrong command there's no such command as kubectl display. changed to kubectl describe. --- .../run-stateless-application-deployment.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tutorials/stateless-application/run-stateless-application-deployment.md b/docs/tutorials/stateless-application/run-stateless-application-deployment.md index 4ab2fe50f2..70aeb925c2 100644 --- a/docs/tutorials/stateless-application/run-stateless-application-deployment.md +++ b/docs/tutorials/stateless-application/run-stateless-application-deployment.md @@ -75,7 +75,7 @@ a Deployment that runs the nginx:1.7.9 Docker image: 1. Display information about a pod: - kubectl display pod + kubectl describe pod where `` is the name of one of your pods. From 2a092c6395361fe3ec3aae1b1ac4caf2400aaeb1 Mon Sep 17 00:00:00 2001 From: Tarun Chinmai Date: Tue, 27 Sep 2016 16:48:39 +0530 Subject: [PATCH 06/21] Removed line 19. was junk --- docs/tutorials/stateless-application/deployment.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/tutorials/stateless-application/deployment.yaml b/docs/tutorials/stateless-application/deployment.yaml index a3dfd2f975..aaa6f65a83 100644 --- a/docs/tutorials/stateless-application/deployment.yaml +++ b/docs/tutorials/stateless-application/deployment.yaml @@ -16,4 +16,3 @@ spec: image: nginx:1.7.9 ports: - containerPort: 80 -Contact GitHub API Training Shop Blog About From ef07e501f0eed4605c5f818901cee9dd2c22d059 Mon Sep 17 00:00:00 2001 From: Eric Tune Date: Mon, 26 Sep 2016 13:21:04 -0700 Subject: [PATCH 07/21] Document writing portable config with storage --- docs/user-guide/persistent-volumes/index.md | 24 +++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/user-guide/persistent-volumes/index.md b/docs/user-guide/persistent-volumes/index.md index dfc9aa5b5a..5232f068cd 100644 --- a/docs/user-guide/persistent-volumes/index.md +++ b/docs/user-guide/persistent-volumes/index.md @@ -399,3 +399,27 @@ parameters: * `type`: [VolumeType](http://docs.openstack.org/admin-guide/dashboard-manage-volumes.html) created in Cinder. Default is empty. * `availability`: Availability Zone. Default is empty. + +## Writing Portable Configuration + +If you're writing configuration templates or examples that run on a wide range of clusters +and need persistent storage, we recommend that you use the following pattern: + +- Do include PersistentVolumeClaim objects in your bundle of config (alongside Deployments, ConfigMaps, etc). +- Do not include PersistentVolume objects in the config, since the user instantiating the config may not have + permission to create PersistentVolumes. +- Give the user the option of providing a storage class name when instantating the template. + - If the user provides a storage class name, and the cluster is version 1.4 or newer, put that value into the `volume.beta.kubernetes.io/storage-class` annotation of the PVC. + This will cause the PVC to match the right storage class if the cluster has StorageClasses enabled by the admin. + - If the user does not provide a storage class name or the cluster is version 1.3, then instead put a `volume.alpha.kubernetes.io/storage-class: default` annotation on the PVC. + - This will cause a PV to be automatically provisioned for the user with sane default characteristics on some clusters. + - Despite the word `alpha` in the name, the code behind this annotation has `beta` level support. + - Do not use `volume.beta.kubernetes.io/storage-class:` with any value including the empty string since it will prevent DefaultStorageClass admission controller + from running if enabled. +- In your tooling, do watch for PVCs that are not getting bound after some time and surface this to the user, as this may indicate that the cluster has no dynamic + storage support (in which case the user should create a matching PV) or the cluster has no storage system (in which case the user cannot deploy config requiring + PVCs). +- In the future, we expect most clusters to have `DefaultStorageClass` enabled, and to have some form of storage available. However, there may not be any + storage class names which work on all clusters, so continue to not set one by default. + At some point, the alpha annotation will cease to have meaning, but the unset `storageClass` field on the PVC + will have the desired effect. From 8727ac746cef7d5f41bc3fcae3196495040eab0a Mon Sep 17 00:00:00 2001 From: steveperry-53 Date: Tue, 27 Sep 2016 08:49:46 -0700 Subject: [PATCH 08/21] Remove copyright notice from bootcamp pages. --- docs/tutorials/getting-started/cluster-interactive.html | 6 ------ docs/tutorials/getting-started/cluster-intro.html | 6 ------ docs/tutorials/getting-started/create-cluster.html | 6 ------ docs/tutorials/getting-started/deploy-app.html | 6 ------ docs/tutorials/getting-started/deploy-interactive.html | 6 ------ docs/tutorials/getting-started/deploy-intro.html | 6 ------ docs/tutorials/getting-started/explore-app.html | 6 ------ docs/tutorials/getting-started/explore-interactive.html | 6 ------ docs/tutorials/getting-started/explore-intro.html | 6 ------ docs/tutorials/getting-started/expose-app.html | 6 ------ docs/tutorials/getting-started/expose-interactive.html | 6 ------ docs/tutorials/getting-started/expose-intro.html | 6 ------ docs/tutorials/getting-started/index.html | 6 ------ docs/tutorials/getting-started/scale-app.html | 6 ------ docs/tutorials/getting-started/scale-interactive.html | 6 ------ docs/tutorials/getting-started/scale-intro.html | 6 ------ docs/tutorials/getting-started/update-app.html | 6 ------ docs/tutorials/getting-started/update-interactive.html | 6 ------ docs/tutorials/getting-started/update-intro.html | 6 ------ 19 files changed, 114 deletions(-) diff --git a/docs/tutorials/getting-started/cluster-interactive.html b/docs/tutorials/getting-started/cluster-interactive.html index 6af54cb0e6..8f74bab8b5 100644 --- a/docs/tutorials/getting-started/cluster-interactive.html +++ b/docs/tutorials/getting-started/cluster-interactive.html @@ -32,12 +32,6 @@ - - diff --git a/docs/tutorials/getting-started/cluster-intro.html b/docs/tutorials/getting-started/cluster-intro.html index c3a479cabd..a3dafff437 100644 --- a/docs/tutorials/getting-started/cluster-intro.html +++ b/docs/tutorials/getting-started/cluster-intro.html @@ -96,12 +96,6 @@ - - diff --git a/docs/tutorials/getting-started/create-cluster.html b/docs/tutorials/getting-started/create-cluster.html index 29135e7a9f..42c22f90e8 100644 --- a/docs/tutorials/getting-started/create-cluster.html +++ b/docs/tutorials/getting-started/create-cluster.html @@ -39,12 +39,6 @@ - - diff --git a/docs/tutorials/getting-started/deploy-app.html b/docs/tutorials/getting-started/deploy-app.html index 2267fae038..e60081b601 100644 --- a/docs/tutorials/getting-started/deploy-app.html +++ b/docs/tutorials/getting-started/deploy-app.html @@ -44,12 +44,6 @@ - - diff --git a/docs/tutorials/getting-started/deploy-interactive.html b/docs/tutorials/getting-started/deploy-interactive.html index 49d8c5c96e..6525b21c4c 100644 --- a/docs/tutorials/getting-started/deploy-interactive.html +++ b/docs/tutorials/getting-started/deploy-interactive.html @@ -35,12 +35,6 @@ - - diff --git a/docs/tutorials/getting-started/deploy-intro.html b/docs/tutorials/getting-started/deploy-intro.html index fd6adf0804..cd72f424b8 100644 --- a/docs/tutorials/getting-started/deploy-intro.html +++ b/docs/tutorials/getting-started/deploy-intro.html @@ -98,12 +98,6 @@ - - diff --git a/docs/tutorials/getting-started/explore-app.html b/docs/tutorials/getting-started/explore-app.html index f3ae4ead91..bc18696e81 100644 --- a/docs/tutorials/getting-started/explore-app.html +++ b/docs/tutorials/getting-started/explore-app.html @@ -45,12 +45,6 @@ - - diff --git a/docs/tutorials/getting-started/explore-interactive.html b/docs/tutorials/getting-started/explore-interactive.html index 812ced442f..5b82635398 100644 --- a/docs/tutorials/getting-started/explore-interactive.html +++ b/docs/tutorials/getting-started/explore-interactive.html @@ -35,12 +35,6 @@ - - diff --git a/docs/tutorials/getting-started/explore-intro.html b/docs/tutorials/getting-started/explore-intro.html index 4b6f13e165..df9cd7c305 100644 --- a/docs/tutorials/getting-started/explore-intro.html +++ b/docs/tutorials/getting-started/explore-intro.html @@ -132,12 +132,6 @@ - - diff --git a/docs/tutorials/getting-started/expose-app.html b/docs/tutorials/getting-started/expose-app.html index 593f34794e..04e8300b91 100644 --- a/docs/tutorials/getting-started/expose-app.html +++ b/docs/tutorials/getting-started/expose-app.html @@ -46,12 +46,6 @@ - - diff --git a/docs/tutorials/getting-started/expose-interactive.html b/docs/tutorials/getting-started/expose-interactive.html index d2d61e87c4..04d3bc3f53 100644 --- a/docs/tutorials/getting-started/expose-interactive.html +++ b/docs/tutorials/getting-started/expose-interactive.html @@ -33,12 +33,6 @@ - - diff --git a/docs/tutorials/getting-started/expose-intro.html b/docs/tutorials/getting-started/expose-intro.html index 9f5bf74b83..2178a7dd25 100644 --- a/docs/tutorials/getting-started/expose-intro.html +++ b/docs/tutorials/getting-started/expose-intro.html @@ -126,12 +126,6 @@ - - diff --git a/docs/tutorials/getting-started/index.html b/docs/tutorials/getting-started/index.html index 9762cae49a..932bd79363 100644 --- a/docs/tutorials/getting-started/index.html +++ b/docs/tutorials/getting-started/index.html @@ -89,12 +89,6 @@ - - diff --git a/docs/tutorials/getting-started/scale-app.html b/docs/tutorials/getting-started/scale-app.html index 9a4a1406db..4996dd3cd4 100644 --- a/docs/tutorials/getting-started/scale-app.html +++ b/docs/tutorials/getting-started/scale-app.html @@ -44,12 +44,6 @@ - - diff --git a/docs/tutorials/getting-started/scale-interactive.html b/docs/tutorials/getting-started/scale-interactive.html index ea0de03c48..9ab0d10557 100644 --- a/docs/tutorials/getting-started/scale-interactive.html +++ b/docs/tutorials/getting-started/scale-interactive.html @@ -33,12 +33,6 @@ - - diff --git a/docs/tutorials/getting-started/scale-intro.html b/docs/tutorials/getting-started/scale-intro.html index b36757d755..b06e574c7e 100644 --- a/docs/tutorials/getting-started/scale-intro.html +++ b/docs/tutorials/getting-started/scale-intro.html @@ -110,12 +110,6 @@ - - diff --git a/docs/tutorials/getting-started/update-app.html b/docs/tutorials/getting-started/update-app.html index d5d9f05c95..6ce6600d0e 100644 --- a/docs/tutorials/getting-started/update-app.html +++ b/docs/tutorials/getting-started/update-app.html @@ -44,12 +44,6 @@ - - diff --git a/docs/tutorials/getting-started/update-interactive.html b/docs/tutorials/getting-started/update-interactive.html index 13da0fc43d..5b399f06dc 100644 --- a/docs/tutorials/getting-started/update-interactive.html +++ b/docs/tutorials/getting-started/update-interactive.html @@ -28,12 +28,6 @@ - - diff --git a/docs/tutorials/getting-started/update-intro.html b/docs/tutorials/getting-started/update-intro.html index 0d3a3b2cfe..c6f65cfa58 100644 --- a/docs/tutorials/getting-started/update-intro.html +++ b/docs/tutorials/getting-started/update-intro.html @@ -125,12 +125,6 @@ - - From 5dee6166be23227458b07d74c9088175694f76c4 Mon Sep 17 00:00:00 2001 From: Luke Marsden Date: Tue, 27 Sep 2016 15:51:32 +0100 Subject: [PATCH 09/21] Update kubeadm guide to use official stable deb and rpm repos. Thanks @mikedanese! --- docs/getting-started-guides/kubeadm.md | 28 +++++++++++++++++--------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/docs/getting-started-guides/kubeadm.md b/docs/getting-started-guides/kubeadm.md index 22e64fa539..6d99a9cd72 100644 --- a/docs/getting-started-guides/kubeadm.md +++ b/docs/getting-started-guides/kubeadm.md @@ -55,26 +55,34 @@ For each host in turn: * SSH into the machine and become `root` if you are not already (for example, run `sudo su -`). * If the machine is running Ubuntu 16.04, run: - # apt-get install -y docker.io socat apt-transport-https - # curl -s -L \ - https://storage.googleapis.com/kubeadm/kubernetes-xenial-preview-bundle.txz | tar xJv - # dpkg -i kubernetes-xenial-preview-bundle/*.deb + # curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - + # cat < /etc/apt/sources.list.d/kubernetes.list + deb http://apt.kubernetes.io/ kubernetes-xenial main + EOF + # apt-get update + # apt-get install -y kubelet kubeadm kubectl kubernetes-cni If the machine is running CentOS 7, run: - # cat < /etc/yum.repos.d/k8s.repo - [kubelet] - name=kubelet - baseurl=http://files.rm-rf.ca/rpms/kubelet/ + # cat < /etc/yum.repos.d/kubernetes.repo + [kubernetes] + name=Kubernetes + baseurl=http://yum.kubernetes.io/repos/kubernetes-el7-x86_64 enabled=1 - gpgcheck=0 + gpgcheck=1 + repo_gpgcheck=1 + gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg + https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF - # yum install docker kubelet kubeadm kubectl kubernetes-cni + # setenforce 0 + # yum install -y kubelet kubeadm kubectl kubernetes-cni # systemctl enable docker && systemctl start docker # systemctl enable kubelet && systemctl start kubelet The kubelet is now restarting every few seconds, as it waits in a crashloop for `kubeadm` to tell it what to do. +Note: `setenforce 0` will no longer be necessary on CentOS once [#33555](https://github.com/kubernetes/kubernetes/pull/33555) is included in a released version of `kubeadm`. + ### (2/4) Initializing your master The master is the machine where the "control plane" components run, including `etcd` (the cluster database) and the API server (which the `kubectl` CLI communicates with). From 7e7e35c1dfeb31e9998def8170aa33f4e24828fd Mon Sep 17 00:00:00 2001 From: Luke Marsden Date: Tue, 27 Sep 2016 15:58:01 +0100 Subject: [PATCH 10/21] Use the official 1.4.0 image. --- docs/getting-started-guides/kubeadm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/kubeadm.md b/docs/getting-started-guides/kubeadm.md index 6d99a9cd72..4c8e81013e 100644 --- a/docs/getting-started-guides/kubeadm.md +++ b/docs/getting-started-guides/kubeadm.md @@ -90,7 +90,7 @@ All of these components run in pods started by `kubelet`. To initialize the master, pick one of the machines you previously installed `kubelet` and `kubeadm` on, and run: - # kubeadm init --use-kubernetes-version v1.4.0-beta.11 + # kubeadm init This will download and install the cluster database and "control plane" components. This may take several minutes. From c781e15700190ab4d28d6e3fc1786cd3c22ff707 Mon Sep 17 00:00:00 2001 From: Luke Marsden Date: Tue, 27 Sep 2016 20:43:08 +0100 Subject: [PATCH 11/21] Install docker. --- docs/getting-started-guides/kubeadm.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/getting-started-guides/kubeadm.md b/docs/getting-started-guides/kubeadm.md index 4c8e81013e..5f3ff27765 100644 --- a/docs/getting-started-guides/kubeadm.md +++ b/docs/getting-started-guides/kubeadm.md @@ -60,7 +60,7 @@ For each host in turn: deb http://apt.kubernetes.io/ kubernetes-xenial main EOF # apt-get update - # apt-get install -y kubelet kubeadm kubectl kubernetes-cni + # apt-get install -y docker.io kubelet kubeadm kubectl kubernetes-cni If the machine is running CentOS 7, run: @@ -75,7 +75,7 @@ For each host in turn: https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF # setenforce 0 - # yum install -y kubelet kubeadm kubectl kubernetes-cni + # yum install -y docker kubelet kubeadm kubectl kubernetes-cni # systemctl enable docker && systemctl start docker # systemctl enable kubelet && systemctl start kubelet From 05e79bcec5b387235d31d1d7179b5c42d260229f Mon Sep 17 00:00:00 2001 From: Walter Dolce Date: Tue, 27 Sep 2016 21:58:48 +0100 Subject: [PATCH 12/21] Update documentation to match minikube's current behaviour Updating docs as per [minikube's #631](https://github.com/kubernetes/minikube/issues/631) --- docs/getting-started-guides/minikube.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/getting-started-guides/minikube.md b/docs/getting-started-guides/minikube.md index f92910cb8b..020fc5e257 100644 --- a/docs/getting-started-guides/minikube.md +++ b/docs/getting-started-guides/minikube.md @@ -94,7 +94,7 @@ To start a cluster, run the command: ```shell minikube start Starting local Kubernetes cluster... -Kubernetes is available at https://192.168.99.100:443. +Kubectl is now configured to use the cluster. ``` This will build and start a lightweight local cluster, consisting of a master, etcd, Docker and a single node. From ee4af46a7bbe0776d252234d089f1b64cfceb965 Mon Sep 17 00:00:00 2001 From: Luke Marsden Date: Wed, 28 Sep 2016 09:37:35 +0100 Subject: [PATCH 13/21] Add instructions for overriding autodetected network interface. --- docs/getting-started-guides/kubeadm.md | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/docs/getting-started-guides/kubeadm.md b/docs/getting-started-guides/kubeadm.md index 5f3ff27765..6852438004 100644 --- a/docs/getting-started-guides/kubeadm.md +++ b/docs/getting-started-guides/kubeadm.md @@ -42,16 +42,6 @@ You will install the following packages on all the machines: For each host in turn: - - - * SSH into the machine and become `root` if you are not already (for example, run `sudo su -`). * If the machine is running Ubuntu 16.04, run: @@ -92,6 +82,9 @@ To initialize the master, pick one of the machines you previously installed `kub # kubeadm init +**Note:** this will autodetect the network interface to advertise the master on as the interface with the default gateway. +If you want to use a different interface, specify `--api-advertise-addresses=` argument to `kubeadm init`. + This will download and install the cluster database and "control plane" components. This may take several minutes. From 65878b15e25ffd1aeacf4692ffc4b09dac6072d0 Mon Sep 17 00:00:00 2001 From: deads2k Date: Wed, 28 Sep 2016 09:29:57 -0400 Subject: [PATCH 14/21] update docs to point to new incubator --- docs/getting-started-guides/mesos/index.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/getting-started-guides/mesos/index.md b/docs/getting-started-guides/mesos/index.md index bec65b64fd..2d909145a3 100644 --- a/docs/getting-started-guides/mesos/index.md +++ b/docs/getting-started-guides/mesos/index.md @@ -47,9 +47,8 @@ ssh jclouds@${ip_address_of_master_node} Build Kubernetes-Mesos. ```shell -git clone https://github.com/kubernetes/kubernetes -cd kubernetes -export KUBERNETES_CONTRIB=mesos +git clone https://github.com/kubernetes-incubator/kube-mesos-framework +cd kube-mesos-framework make ``` From 8cdebc0d66707784a5031376f14366622d1ae4c0 Mon Sep 17 00:00:00 2001 From: steveperry-53 Date: Wed, 28 Sep 2016 16:02:30 -0700 Subject: [PATCH 15/21] Revise tutorial to use NodePort instead of externa IP address. --- _data/tutorials.yml | 2 +- .../expose-external-ip-address-service.md | 106 +++++++++--------- 2 files changed, 56 insertions(+), 52 deletions(-) diff --git a/_data/tutorials.yml b/_data/tutorials.yml index b49283a702..9e3b79c8a2 100644 --- a/_data/tutorials.yml +++ b/_data/tutorials.yml @@ -56,5 +56,5 @@ toc: section: - title: Running a Stateless Application Using a Deployment path: /docs/tutorials/stateless-application/run-stateless-application-deployment/ - - title: Exposing an External IP Address Using a Service + - title: Using a Service to Access an Application in a Cluster path: /docs/tutorials/stateless-application/expose-external-ip-address-service/ diff --git a/docs/tutorials/stateless-application/expose-external-ip-address-service.md b/docs/tutorials/stateless-application/expose-external-ip-address-service.md index 65e13dd904..71112c6666 100644 --- a/docs/tutorials/stateless-application/expose-external-ip-address-service.md +++ b/docs/tutorials/stateless-application/expose-external-ip-address-service.md @@ -4,9 +4,8 @@ {% capture overview %} This page shows how to create a Kubernetes Service object that external -clients can use to access an application running in a cluster. The -Service exposes a stable IP address and provides load balancing for -an application that has two running instances. +clients can use to access an application running in a cluster. The Service +provides load balancing for an application that has two running instances. {% endcapture %} @@ -28,7 +27,7 @@ an application that has two running instances. {% capture objectives %} * Run two instances of a Hello World application. -* Create a Service object that exposes an external IP address. +* Create a Service object that exposes a node port. * Use the Service object to access the running application. {% endcapture %} @@ -55,63 +54,68 @@ an application that has two running instances. kubectl get deployments hello-world kubectl describe deployments hello-world -1. Display information about the ReplicaSet: +1. Display information about your ReplicaSet objects: - kubectl get replicasets hello-world - kubectl describe replicasets hello-world - -1. List the pods that are running the Hello World application: - - kubectl get pods --selector="run=load-balancer-example" - - The output is similar to this: - - NAME READY STATUS RESTARTS AGE - hello-world-2189936611-8fyp0 1/1 Running 0 6m - hello-world-2189936611-9isq8 1/1 Running 0 6m + kubectl get replicasets + kubectl describe replicasets 1. Create a Service object that exposes the deployment: - kubectl expose deployment hello-world --type="LoadBalancer" --name="example-service" + kubectl expose deployment hello-world --type=NodePort --name=example-service -1. Display the IP addresses for your service: +1. Display information about the Service: - kubectl get services example-service - - The output shows the internal IP address and the external IP address of - your service. If the external IP address shows as ``, repeat the - command. - - Note: If you are using Minikube, you don't get an external IP address. The - external IP address remains in the pending state. - - NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE - example-service 10.0.0.160 8080/TCP 40s - -1. Use your service to access the Hello World application: - - curl :8080 - - where `` is the external IP address of your - service. - - The output is a hello message from the application: - - Hello Kubernetes! - - Note: If you are using Minikube, enter these commands: - - kubectl cluster-info kubectl describe services example-service - The output displays the IP address of your Minikube node and the NodePort - value for your service. Enter this command to access the Hello World - application: + The output is similar to this: - curl : + Name: example-service + Namespace: default + Labels: run=load-balancer-example + Selector: run=load-balancer-example + Type: NodePort + IP: 10.32.0.16 + Port: 8080/TCP + NodePort: 31496/TCP + Endpoints: 10.200.1.4:8080,10.200.2.5:8080 + Session Affinity: None + No events. - where `` us the IP address of your Minikube node, - and `` is the NodePort value for your service. + Make a note of the NodePort value for the service. For example, + in the preceding output, the NodePort value is 31496. + +1. List the pods that are running the Hello World application: + + kubectl get pods --selector="run=load-balancer-example" --output=wide + + The output is similar to this: + + NAME READY STATUS ... IP NODE + hello-world-2895499144-bsbk5 1/1 Running ... 10.200.1.4 worker1 + hello-world-2895499144-m1pwt 1/1 Running ... 10.200.2.5 worker2 + +1. Get the public IP address of one of your nodes that is running + a Hello World pod. How you get this address depends on how you set + up your cluster. For example, if you are using Minikube, you can + see the node address by running `kubectl cluster-info`. If you are + using Google Compute Engine instances, you can use the + `gcloud compute instances list` command to see the public addresses of your + nodes. + +1. On your chosen node, create a firewall rule that allows TCP traffic + on your node port. For example, if your Service has a NodePort value of + 31568, create a firewall rule that allows TCP traffic on port 31568. + +1. Use the node address and node port to access the Hello World application: + + curl http://: + + where `` us the public IP address of your node, + and `` is the NodePort value for your service. + + The response to a successful request is a hello message: + + Hello Kubernetes! ### Using a service configuration file From 55017a1f27cd40d0683e9b6d5c3a501a6c6e9a16 Mon Sep 17 00:00:00 2001 From: Michail Kargakis Date: Wed, 28 Sep 2016 23:32:39 +0200 Subject: [PATCH 16/21] Fix note for paused deployments --- docs/user-guide/deployments.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/user-guide/deployments.md b/docs/user-guide/deployments.md index 1fae4ddd7d..d160cce1e7 100644 --- a/docs/user-guide/deployments.md +++ b/docs/user-guide/deployments.md @@ -451,7 +451,8 @@ nginx-deployment-2035384211 0 0 1h nginx-deployment-3066724191 0 0 1h ``` -Note: A paused Deployment cannot be scaled at this moment, and we will add this feature in 1.3 release, see [issue #20853](https://github.com/kubernetes/kubernetes/issues/20853). You cannot rollback a paused Deployment either, and you should resume a Deployment first before doing a rollback. +Note: You cannot rollback a paused Deployment until you resume it. + ## Use Cases From 53933e173803c03ac5665aecea2fd044c1288b5f Mon Sep 17 00:00:00 2001 From: steveperry-53 Date: Thu, 29 Sep 2016 13:43:54 -0700 Subject: [PATCH 17/21] Create task page: Assigning Pods to Nodes. --- _data/tasks.yml | 4 + .../administer-cluster/assign-pods-nodes.md | 87 +++++++++++++++++++ docs/tasks/administer-cluster/pod.yaml | 13 +++ docs/tasks/index.md | 3 + docs/tutorials/index.md | 2 +- 5 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 docs/tasks/administer-cluster/assign-pods-nodes.md create mode 100644 docs/tasks/administer-cluster/pod.yaml diff --git a/_data/tasks.yml b/_data/tasks.yml index 1019671e66..86209a52aa 100644 --- a/_data/tasks.yml +++ b/_data/tasks.yml @@ -10,4 +10,8 @@ toc: section: - title: Using an HTTP Proxy to Access the Kubernetes API path: /docs/tasks/access-kubernetes-api/http-proxy-access-api/ +- title: Administering a Cluster + section: + - title: Assigning Pods to Nodes + path: /docs/tasks/administer-cluster/assign-pods-nodes/ diff --git a/docs/tasks/administer-cluster/assign-pods-nodes.md b/docs/tasks/administer-cluster/assign-pods-nodes.md new file mode 100644 index 0000000000..894aeddf7d --- /dev/null +++ b/docs/tasks/administer-cluster/assign-pods-nodes.md @@ -0,0 +1,87 @@ +--- +--- + +{% capture overview %} +This page shows how to use an HTTP proxy to access the Kubernetes API. +{% endcapture %} + +{% capture prerequisites %} + +* Install [kubectl](http://kubernetes.io/docs/user-guide/prereqs). + +* Create a Kubernetes cluster, including a running Kubernetes + API server. One way to create a new cluster is to use + [Minikube](/docs/getting-started-guides/minikube). + +* Configure `kubectl` to communicate with your Kubernetes API server. This + configuration is done automatically if you use Minikube. + +{% endcapture %} + +{% capture steps %} + +### Adding a label to a node + +1. List the nodes in your cluster: + + kubectl get nodes + + The output is similar to this: + + NAME STATUS AGE + worker0 Ready 1d + worker1 Ready 1d + worker2 Ready 1d + +1. Chose one of your nodes, and add a label to it: + + kubectl label nodes disktype=ssd + + where is the name of your chosen node. + +1. Verify that your chosen node has a `disktype=ssd` label: + + kubectl get nodes --showlabels + + + The output is similar to this: + + NAME STATUS AGE LABELS + worker0 Ready 1d ...,disktype=ssd,kubernetes.io/hostname=worker0 + worker1 Ready 1d ...,kubernetes.io/hostname=worker1 + worker2 Ready 1d ...,kubernetes.io/hostname=worker2 + + In the preceding output, you can see that the `worker0` node has a + `disktype=ssd` label. + +### Creating a pod that gets scheduled to your chosen node + +This pod configuration file describes a pod that has a node selector, +`disktype: ssd`. This means that the pod will get scheduled on a node that has +a `disktype=ssd` label. + +{% include code.html language="yaml" file="pod.yaml" ghlink="/docs/tasks/administer-cluster/pod.yaml" %} + +1. Use the configuration file to create a pod that will get scheduled on your + chosen node: + + export REPO=https://raw.githubusercontent.com/kubernetes/kubernetes.github.io/master + kubectl create -f $REPO/docs/tasks/administer-cluster/pod.yaml + +1. Verify that the pod is running on your chosen node: + + kubectl get pods --output=wide + + The output is similar to this: + + NAME READY STATUS RESTARTS AGE IP NODE + nginx 1/1 Running 0 13s 10.200.0.4 worker0 + +{% endcapture %} + +{% capture whatsnext %} +Learn more about +[labels and selectors](/docs/user-guide/labels/). +{% endcapture %} + +{% include templates/task.md %} diff --git a/docs/tasks/administer-cluster/pod.yaml b/docs/tasks/administer-cluster/pod.yaml new file mode 100644 index 0000000000..134ddae2aa --- /dev/null +++ b/docs/tasks/administer-cluster/pod.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Pod +metadata: + name: nginx + labels: + env: test +spec: + containers: + - name: nginx + image: nginx + imagePullPolicy: IfNotPresent + nodeSelector: + disktype: ssd diff --git a/docs/tasks/index.md b/docs/tasks/index.md index b8fa301fa3..dcd9120e1b 100644 --- a/docs/tasks/index.md +++ b/docs/tasks/index.md @@ -11,6 +11,9 @@ The Tasks section of the Kubernetes documentation is a work in progress * [Using an HTTP Proxy to Access the Kubernetes API](/docs/tasks/access-kubernetes-api/http-proxy-access-api) +#### Administering a Cluster + +* [Assigning Pods to Nodes](/docs/tasks/administer-cluster/assign-pods-nodes/) ### What's next diff --git a/docs/tutorials/index.md b/docs/tutorials/index.md index db1b224364..23400521e7 100644 --- a/docs/tutorials/index.md +++ b/docs/tutorials/index.md @@ -7,7 +7,7 @@ The Tutorials section of the Kubernetes documentation is a work in progress. * [Running a Stateless Application Using a Deployment](/docs/tutorials/stateless-application/run-stateless-application-deployment/) -* [Exposing an External IP Address Using a Service](/docs/tutorials/stateless-application/expose-external-ip-address-service/) +* [Using a Service to Access an Application in a Cluster](/docs/tutorials/stateless-application/expose-external-ip-address-service/) ### What's next From 1a379cd812057d86cea674fedd163946fc934d5b Mon Sep 17 00:00:00 2001 From: steveperry-53 Date: Thu, 29 Sep 2016 13:52:05 -0700 Subject: [PATCH 18/21] Fix page title. --- docs/tasks/administer-cluster/assign-pods-nodes.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/assign-pods-nodes.md b/docs/tasks/administer-cluster/assign-pods-nodes.md index 894aeddf7d..4ceb5b0c6b 100644 --- a/docs/tasks/administer-cluster/assign-pods-nodes.md +++ b/docs/tasks/administer-cluster/assign-pods-nodes.md @@ -2,7 +2,8 @@ --- {% capture overview %} -This page shows how to use an HTTP proxy to access the Kubernetes API. +This page shows how to assign a Kubernetes Pod to a particualr node in a +Kubernetes cluster. {% endcapture %} {% capture prerequisites %} From dbbe11e3d36b755e1a37b45792d30f27785f9385 Mon Sep 17 00:00:00 2001 From: steveperry-53 Date: Thu, 29 Sep 2016 15:02:35 -0700 Subject: [PATCH 19/21] Change --showlabels to --show-labels. --- docs/tasks/administer-cluster/assign-pods-nodes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/assign-pods-nodes.md b/docs/tasks/administer-cluster/assign-pods-nodes.md index 4ceb5b0c6b..1d27c09107 100644 --- a/docs/tasks/administer-cluster/assign-pods-nodes.md +++ b/docs/tasks/administer-cluster/assign-pods-nodes.md @@ -42,7 +42,7 @@ Kubernetes cluster. 1. Verify that your chosen node has a `disktype=ssd` label: - kubectl get nodes --showlabels + kubectl get nodes --show-labels The output is similar to this: From 6377930f5ff3538ab5b1ca197fae8be5636ca74c Mon Sep 17 00:00:00 2001 From: steveperry-53 Date: Thu, 29 Sep 2016 15:10:49 -0700 Subject: [PATCH 20/21] Fix typo. --- docs/tasks/administer-cluster/assign-pods-nodes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/assign-pods-nodes.md b/docs/tasks/administer-cluster/assign-pods-nodes.md index 1d27c09107..ddeca0b7f7 100644 --- a/docs/tasks/administer-cluster/assign-pods-nodes.md +++ b/docs/tasks/administer-cluster/assign-pods-nodes.md @@ -2,7 +2,7 @@ --- {% capture overview %} -This page shows how to assign a Kubernetes Pod to a particualr node in a +This page shows how to assign a Kubernetes Pod to a particular node in a Kubernetes cluster. {% endcapture %} From dfc9bd1e5fa504eeba2a06b9a13556bf69baace2 Mon Sep 17 00:00:00 2001 From: steveperry-53 Date: Thu, 29 Sep 2016 20:05:30 -0700 Subject: [PATCH 21/21] Put back ticks around placeholder. --- docs/tasks/administer-cluster/assign-pods-nodes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tasks/administer-cluster/assign-pods-nodes.md b/docs/tasks/administer-cluster/assign-pods-nodes.md index ddeca0b7f7..e966f23e28 100644 --- a/docs/tasks/administer-cluster/assign-pods-nodes.md +++ b/docs/tasks/administer-cluster/assign-pods-nodes.md @@ -38,7 +38,7 @@ Kubernetes cluster. kubectl label nodes disktype=ssd - where is the name of your chosen node. + where `` is the name of your chosen node. 1. Verify that your chosen node has a `disktype=ssd` label: