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

.core-h, .core-v {
  display: -webkit-box !important;
  display: -ms-flexbox !important;
  display: -moz-flex !important;
  display: -webkit-flex !important;
  display: flex !important;
}

.core-h {
  -webkit-box-orient: horizontal;
  -ms-flex-direction: row;
  -moz-flex-direction: row;
  -webkit-flex-direction: row;
  flex-direction: row;
}

.core-h.core-reverse {
  -webkit-box-direction: reverse;
  -ms-flex-direction: row-reverse;
  -moz-flex-direction: row-reverse;
  -webkit-flex-direction: row-reverse;
  flex-direction: row-reverse;
}

.core-v {
  -webkit-box-orient: vertical;
  -ms-flex-direction: column;
  -moz-flex-direction: column;
  -webkit-flex-direction: column;
  flex-direction: column;
}

.core-v.core-reverse {
  -webkit-box-direction: reverse;
  -ms-flex-direction: column-reverse;
  -moz-flex-direction: column-reverse;
  -webkit-flex-direction: column-reverse;
  flex-direction: column-reverse;
}

.core-relative {
  position: relative;
}

.core-fit {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
}

body.core-fit {
  margin: 0;
}

.core-flex, [core-flex] {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  -moz-flex: 1;
  -webkit-flex: 1;
  flex: 1;
}

.core-flex-auto, [core-flex-auto] {
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  -moz-flex: 1 1 auto;
  -webkit-flex: 1 1 auto;
  flex: 1 1 auto;
}

.core-flex-none, [core-flex-none] {
  -webkit-box-flex: none;
  -ms-flex: none;
  -moz-flex: none;
  -webkit-flex: none;
  flex: none;
}

.core-flex1, [core-flex=1] {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  -moz-flex: 1;
  -webkit-flex: 1;
  flex: 1;
}

.core-flex2, [core-flex=2] {
  -webkit-box-flex: 2;
  -ms-flex: 2;
  -moz-flex: 2;
  -webkit-flex: 2;
  flex: 2;
}

.core-flex3, [core-flex=3] {
  -webkit-box-flex: 3;
  -ms-flex: 3;
  -moz-flex: 3;
  -webkit-flex: 3;
  flex: 3;
}

/* distributed elements */
::content > .core-flex, ::content > [core-flex] {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  -moz-flex: 1;
  -webkit-flex: 1;
  flex: 1;
}

::content > .core-flex-auto, ::content > [core-flex-auto] {
  -webkit-box-flex: 1;
  -ms-flex: 1 1 auto;
  -moz-flex: 1 1 auto;
  -webkit-flex: 1 1 auto;
  flex: 1 1 auto;
}

::content > .core-flex-none, ::content > [core-flex-none] {
  -webkit-box-flex: none;
  -ms-flex: none;
  -moz-flex: none;
  -webkit-flex: none;
  flex: none;
}

::content > .core-flex1, ::content > [core-flex=1] {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  -moz-flex: 1;
  -webkit-flex: 1;
  flex: 1;
}

::content > .core-flex2, ::content > [core-flex=2] {
  -webkit-box-flex: 2;
  -ms-flex: 2;
  -moz-flex: 2;
  -webkit-flex: 2;
  flex: 2;
}

::content > .core-flex3, ::content > [core-flex=3] {
  -webkit-box-flex: 3;
  -ms-flex: 3;
  -moz-flex: 3;
  -webkit-flex: 3;
  flex: 3;
}

/* alignment in main axis */
.core-justify-start {
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  -moz-justify-content: flex-start;
  -webkit-justify-content: flex-start;
  justify-content: flex-start;
}

.core-justify-center {
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  -moz-justify-content: center;
  -webkit-justify-content: center;
  justify-content: center;
}

.core-justify-end {
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  -moz-justify-content: flex-end;
  -webkit-justify-content: flex-end;
  justify-content: flex-end;
}

.core-justify-between {
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  -moz-justify-content: space-between;
  -webkit-justify-content: space-between;
  justify-content: space-between;
}

/* alignment in cross axis */
.core-align-start {
  -webkit-box-align: start;
  -ms-flex-align: start;
  -moz-align-items: flex-start;
  -webkit-align-items: flex-start;
  align-items: flex-start;
}

.core-align-center {
  -webkit-box-align: center;
  -ms-flex-align: center;
  -moz-align-items: center;
  -webkit-align-items: center;
  align-items: center;
}

.core-align-end {
  -webkit-box-align: end;
  -ms-flex-align: end;
  -moz-align-items: flex-end;
  -webkit-align-items: flex-end;
  align-items: flex-end;
}
