/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file. */

/* The main (outer) container. */
#metro-setup-outer-container {
  -webkit-box-align: center;
  -webkit-box-orient: vertical;
  -webkit-box-pack: start;
  -webkit-transition: 200ms opacity;
  background-color: rgba(255, 255, 255, 0.75);
  bottom: 0;
  display: -webkit-box;
  left: 0;
  overflow: auto;
  position: fixed;
  right: 0;
  top: 0;
}

/* The page block within the outer container. */
#metro-setup-outer-container .page {
  -webkit-border-radius: 3px;
  -webkit-box-orient: vertical;
  -webkit-user-select: none;
  background: white;
  background-color: white;
  color: #333;
  display: -webkit-box;
  min-width: 40px;
  padding-top: 90px;
  position: relative;
  width: 500px;
}

#metro-setup-outer-container .page .content-area {
  -webkit-box-flex: 1;
  margin: 0;
  overflow: auto;
  padding: 0;
}

#metro-setup-overlay {
  background-color: transparent;
  margin: 0;
  width: 100%;
}

/* Page Title. */
#metro-title-container {
  display: block;
  margin: 37px 44px 35px;
  text-align: center;
}

#metro-setup-outer-container .page h1 {
  border-bottom: 0;
  color: #323232;
  font-size: 300%;
  font-weight: normal;
  margin: 0;
  padding-bottom: 0;
  padding-top: 0;
  text-align: center;
}

#metro-setup-outer-container .page h2 {
  border-bottom: 0;
  color: #787878;
  font-size: 150%;
  font-weight: normal;
  margin-bottom: 84px;
  margin-top: 15px;
  text-align: center;
}

#metro-setup-overlay .content-area {
  padding: 10px 15px;
  text-align: end;
}

/* Action buttons. */
#metro-action-box button {
  -webkit-margin-end: 0.4em;
  -webkit-margin-start: 0;
  -webkit-transition: all 218ms;
  -webkit-user-select: none;
  border-radius: 2px;
  display: inline-block;
  font-size: 13px;
  height: 32px;
  line-height: 27px;
  margin-top: 0;
  min-width: 80px;
}

#metro-action-box button:hover {
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
  -webkit-transition: all 0;
}

#metro-action-box button:focus {
  -webkit-box-shadow: inset 0 0 0 1px white;
  outline: none;
  z-index: 4 !important;
}

#metro-action-box button:active,
#metro-action-box button:focus:active {
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.3);
}

#metro-action-box button:focus:hover {
  -webkit-box-shadow: inset 0 0 0 1px white, 0 1px 1px rgba(0, 0, 0, 0.1);
}

#metro-action-box button[disabled],
#metro-action-box button[disabled]:hover,
#metro-action-box button[disabled]:active {
  -webkit-box-shadow: none;
  background-color: rgb(77, 144, 254);
  border: 1px solid rgb(48, 121, 237);
  color: white;
  opacity: 0.5;
}

/* Launch button has a special look-and-feel. */
#metro-action-box #launch-button {
  background-image: -webkit-linear-gradient(top, rgb(77, 144, 254),
                                                 rgb(71, 135, 237));
  border: 1px solid rgb(48, 121, 237);
  color: white;
  font-weight: bold;
}

#metro-action-box #launch-button:hover {
  background-image: -webkit-linear-gradient(top, rgb(77, 144, 254),
                                                 rgb(53, 122, 232));
  border-color: rgb(47, 91, 183);
  color: white;
}

#metro-action-box #launch-button:focus {
  border-color: rgb(77, 144, 254);
  outline: none;
  z-index: 4 !important;
}

.button-strip {
  margin: 1px;
  text-align: center;
}

#chrome-logo-box {
  bottom: 30px;
  position: absolute;
  text-align: center;
  width: 100%;
}
