/* Copyright 2014 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.
 */

#outer-container {
  -webkit-box-align: center;
  -webkit-box-pack: center;
  bottom: var(--shelf-area-height);  /* Leave space for the header bar */
  display: -webkit-box;
  left: 0;
  min-height: 717px; /* This enables scrolling. Min resolution: 1024x768 */
  perspective: 1px; /* Workaround, see http://crbug.com/360567 */
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1;
}

.oobe-display #outer-container {
  bottom: 47px; /* header-bar is 47 pixels high during OOBE */
  perspective: 600px;
}

.pin-container.pin-enabled {
  opacity: 1;
  transition: opacity 200ms ease-in-out 180ms;
  visibility: visible;
}

.pin-container.pin-disabled {
  opacity: 0; /* Opacity is set to 1 after the pin element is loaded. */
  transition: none;
  visibility: hidden; /* Needed because pin-keyboard's offsetHeight is
                         checked to determine if loaded. */
}

#scroll-container {
  bottom: 0;        /* Allows content overlap with control bar. */
  left: 0;
  overflow-x: hidden;
  overflow-y: auto;
  position: absolute;
  right: 0;
  top: 0;
}

#scroll-container::-webkit-scrollbar {
  display: none;
}

#inner-container {
  border-radius: 2px;
  position: relative;
}

#inner-container.animation {
  overflow: hidden;
}

#inner-container.disabled {
  opacity: 0.4;
  pointer-events: none;
}

/* Screens that have a border and background. */
#oobe.auto-enrollment-check #inner-container,
#oobe.autolaunch #inner-container,
#oobe.confirm-password #inner-container,
#oobe.debugging #inner-container,
#oobe.enrollment #inner-container,
#oobe.fatal-error #inner-container,
#oobe.gaia-signin #inner-container,
#oobe.hid-detection #inner-container,
#oobe.kiosk-enable #inner-container,
#oobe.oauth-enrollment #inner-container,
#oobe.password-changed #inner-container,
#oobe.ad-password-change #inner-container,
#oobe.supervised-user-creation #inner-container,
#oobe.supervised-user-creation-dialog #inner-container,
#oobe.terms-of-service #inner-container,
#oobe.arc-tos #inner-container,
#oobe.update #inner-container,
#oobe.update-required #inner-container,
#oobe.user-image #inner-container,
#oobe.wrong-hwid #inner-container,
#oobe.unrecoverable-cryptohome-error #inner-container {
  background: white;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3),
              0 4px 23px 5px rgba(0, 0, 0, 0.2),
              0 2px 6px rgba(0, 0, 0, 0.15);
}

#oobe.error-message #inner-container,
#oobe.tpm-error-message #inner-container {
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3),
              0 4px 23px 5px rgba(0, 0, 0, 0.2),
              0 2px 6px rgba(0, 0, 0, 0.15);

}

/* Only play this animation when 'down' class is removed. */
.oobe-display #inner-container:not(.down) {
  transition: transform 200ms ease-in-out;
}

.oobe-display #inner-container.down {
  transform: translateY(50px) rotateX(-2.5deg);
}

#account-picker-dot,
#app-launch-splash-dot,
#arc-kiosk-splash-dot,
#auto-enrollment-check-dot,
#autolaunch-dot,
#confirm-password-dot,
#debugging-dot,
#device-disabled-dot,
#enrollment-dot,
#error-message-dot,
#fatal-error-dot,
#hid-detection-dot,
#kiosk-enable-dot,
#oauth-enrollment-dot,
#password-changed-dot,
#reset-dot,
#supervised-user-creation-dialog-dot,
#supervised-user-creation-dot,
#terms-of-service-dot,
#arc-tos-dot,
#tpm-error-message-dot,
#update-required-dot,
#wrong-hwid-dot,
#unrecoverable-cryptohome-error-dot {
  display: none;
}

#oobe.connect #connect-dot,
#oobe.enrollment #gaia-signin-dot,
#oobe.enrollment #signin-dot,
#oobe.eula #eula-dot,
#oobe.gaia-signin #gaia-signin-dot,
#oobe.oauth-enrollment #gaia-signin-dot,
#oobe.oauth-enrollment #signin-dot,
#oobe.signin #signin-dot,
#oobe.update #update-dot,
#oobe.user-image #user-image-dot {
  opacity: 1;
}

body:not(.oobe-display) #inner-container {
  height: 262px;
  padding: 0;
  width: 1100px;
}

#outer-container.fullscreen,
#outer-container.fullscreen #oobe,
#outer-container.fullscreen #oobe #inner-container {
  height: 100%;
  width: 100%;
}

html[build=chrome] #header-sections {
  -webkit-margin-start: -48px;
  margin-top: -1px;
}

html[build=chromium] #header-sections {
  -webkit-margin-start: 5px;
  margin-top: -1px;
}

.header-section {
  color: rgb(119, 120, 123);  /* Should matching text color of the logo. */
  display: none;
  font-size: 23px;
  line-height: 31px;
  text-transform: lowercase;
  width: 23em;
}

.header-section::before {
  /* Divider in header between product name and title,
   * like "[Product name] > [step header]". */
  content: '\00A0\203A\00A0\00A0';
}
