/*
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/

:host {
  display: inline-block;
  background: #323232;
  color: #f1f1f1;
  min-height: 48px;
  min-width: 288px;
  padding: 16px 24px 12px;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26);
  border-radius: 2px;
  bottom: 12px;
  left: 12px;
  font-size: 14px;
  cursor: default;
}

:host(.capsule) {
  border-radius: 24px;
}

:host(.fit-bottom) {
  bottom: 0;
  left: 0;
  width: 100%;
  min-width: 0;
  border-radius: 0;
}

:host(.core-transition.dragging) {
  transition: none;
}

:host(.core-transition.fade-out-down),
:host(.core-transition.fade-out-up),
:host(.core-transition.fade-out-right),
:host(.core-transition.fade-out-left) {
  opacity: 0;
  transition: -webkit-transform 0.08s ease-in-out, opacity 0.08s ease-in-out;
  transition: transform 0.08s ease-in-out, opacity 0.08s ease-in-out;
}

:host(.core-transition.fade-out-down) {
  -webkit-transform: translate(0, 100%);
  transform: translate(0, 100%);
}

:host(.core-transition.fade-out-up) {
  -webkit-transform: translate(0, -100%);
  transform: translate(0, -100%);
}

:host(.core-transition.fade-out-right) {
  -webkit-transform: translate(100%, 0);
  transform: translate(100%, 0);
}

:host(.core-transition.fade-out-left) {
  -webkit-transform: translate(-100%, 0);
  transform: translate(-100%, 0);
}

.toast-container {
  overflow: hidden;
}

.toast-action {
  padding-left: 24px;
  cursor: pointer;
  text-transform: uppercase;
}
