/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*------------------------------------*    $CONTENTS
\*------------------------------------*/

/**
 * STYLE GUIDE VARIABLES------------------Declarations of Sass variables
 * -----Typography
 * -----Colors
 * -----Textfield
 * -----Switch
 * -----Spinner
 * -----Radio
 * -----Menu
 * -----List
 * -----Layout
 * -----Icon toggles
 * -----Footer
 * -----Column
 * -----Checkbox
 * -----Card
 * -----Button
 * -----Animation
 * -----Progress
 * -----Badge
 * -----Shadows
 * -----Grid
 * -----Data table
 * -----Dialog
 * -----Snackbar
 * -----Tooltip
 * -----Chip
 *
 * Even though all variables have the `!default` directive, most of them
 * should not be changed as they are dependent one another. This can cause
 * visual distortions (like alignment issues) that are hard to track down
 * and fix.
 */

/* ==========  TYPOGRAPHY  ========== */

/* We're splitting fonts into "preferred" and "performance" in order to optimize
   page loading. For important text, such as the body, we want it to load
   immediately and not wait for the web font load, whereas for other sections,
   such as headers and titles, we're OK with things taking a bit longer to load.
   We do have some optional classes and parameters in the mixins, in case you
   definitely want to make sure you're using the preferred font and don't mind
   the performance hit.
   We should be able to improve on this once CSS Font Loading L3 becomes more
   widely available.
*/

/* ==========  COLORS  ========== */

/**
*
* Material design color palettes.
* @see http://www.google.com/design/spec/style/color.html
*
**/

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* ==========  Color Palettes  ========== */

/* colors.scss */

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* ==========  IMAGES  ========== */

/* ==========  Color & Themes  ========== */

/* ==========  Typography  ========== */

/* ==========  Components  ========== */

/* ==========  Standard Buttons  ========== */

/* ==========  Icon Toggles  ========== */

/* ==========  Radio Buttons  ========== */

/* ==========  Ripple effect  ========== */

/* ==========  Layout  ========== */

/* ==========  Content Tabs  ========== */

/* ==========  Checkboxes  ========== */

/* ==========  Switches  ========== */

/* ==========  Spinner  ========== */

/* ==========  Text fields  ========== */

/* ==========  Card  ========== */

/* ==========  Sliders ========== */

/* ========== Progress ========== */

/* ==========  List ========== */

/* ==========  Item ========== */

/* ==========  Dropdown menu ========== */

/* ==========  Tooltips  ========== */

/* ==========  Footer  ========== */

/* TEXTFIELD */

/* SWITCH */

/* SPINNER */

/* RADIO */

/* MENU */

/* LIST */

/* LAYOUT */

/* ICON TOGGLE */

/* FOOTER */

/*mega-footer*/

/*mini-footer*/

/* CHECKBOX */

/* CARD */

/* Card dimensions */

/* Cover image */

/* BUTTON */

/**
 *
 * Dimensions
 *
 */

/* ANIMATION */

/* PROGRESS */

/* BADGE */

/* SHADOWS */

/* GRID */

/* DATA TABLE */

/* DIALOG */

/* SNACKBAR */

/* TOOLTIP */

/* CHIP */

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* Typography */

/* Shadows */

/* Animations */

/* Dialog */

/**
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* stylelint-disable */

/* stylelint-enable */

/* ==========   Sticky Header   ========== */

/* stylelint-disable */

/* stylelint-enable */

/* ==========     Accordion     ========== */

/* ==========     Dialog     ========== */

/* ==========     Lightbox     ========== */

/* ==========  Lightboard  ========== */

/* ==========  Carousel  ========== */

/* ==========  Bordered fields  ========== */

/* ==========  Color Themes  ========== */

/* stylelint-disable */

/* stylelint-enable */

/* stylelint-disable */

/* stylelint-enable */

/**
 * @license
 * Copyright 2016-2017 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * This code is built with Google Material Design Lite,
 * which is Licensed under the Apache License, Version 2.0
 */

/* stylelint-disable */

/* stylelint-enable */

.mdlext-aria-expanded-plus-minus {
  font-family: inherit;
  font-weight: inherit;
  font-style: inherit;
  font-size: 24px;
  display: inline-block;
  width: 1em;
  height: 1em;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  vertical-align: middle;
  -webkit-font-smoothing: antialiased;
  -webkit-font-feature-settings: 'liga';
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
}

.mdlext-aria-expanded-plus-minus::after {
  content: "+";
  margin-left: 0;
}

[aria-expanded='true'] > .mdlext-aria-expanded-plus-minus::after {
  content: "-";
  margin-left: 0;
}

.mdlext-aria-expanded-more-less {
  font-family: "Material Icons";
  font-weight: inherit;
  font-style: inherit;
  font-size: 24px;
  display: inline-block;
  width: 1em;
  height: 1em;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  vertical-align: middle;
  -webkit-font-smoothing: antialiased;
  -webkit-font-feature-settings: 'liga';
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
}

.mdlext-aria-expanded-more-less::after {
  content: "expand_more";
  margin-left: 0;
}

[aria-expanded='true'] > .mdlext-aria-expanded-more-less::after {
  content: "expand_less";
  margin-left: 0;
}

/**
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* stylelint-disable */

/* stylelint-enable */

/* ==========   Sticky Header   ========== */

/* stylelint-disable */

/* stylelint-enable */

/* ==========     Accordion     ========== */

/* ==========     Dialog     ========== */

/* ==========     Lightbox     ========== */

/* ==========  Lightboard  ========== */

/* ==========  Carousel  ========== */

/* ==========  Bordered fields  ========== */

/* ==========  Color Themes  ========== */

.mdlext-layout__sticky-header {
  position: absolute;
  overflow: visible;
  background: transparent linear-gradient(to bottom, #3f51b5 0, #3f51b5 100%);
  transition: 0.1s ease-in-out;
}

.mdlext-layout__sticky-header.mdlext-is-scroll {
  background: transparent linear-gradient(to bottom, rgba(63, 81, 181, 0.98) 100%, rgba(63, 81, 181, 0.95) 100%);
}

*:not(.is-small-screen) .mdlext-layout__sticky-header .mdl-layout__drawer-button {
  visibility: hidden;
}

*:not(.is-small-screen) .mdlext-layout__sticky-header .mdl-layout__header-row {
  padding-left: 16px;
}

*:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header,
.is-small-screen.has-drawer .mdlext-layout__sticky-header {
  display: -ms-flexbox;
  display: flex;
}

*:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header .mdl-layout__drawer-button,
.is-small-screen.has-drawer .mdlext-layout__sticky-header .mdl-layout__drawer-button {
  visibility: visible;
}

*:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header .mdl-layout__header-row,
.is-small-screen.has-drawer .mdlext-layout__sticky-header .mdl-layout__header-row {
  padding-left: 64px;
}

/**
 * Copyright 2015 Google Inc. All Rights Reserved.
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * SASS based on css from Google Chrome Dialog polyfill, https://github.com/GoogleChrome/dialog-polyfill
 * @include 'node_modules/dialog-polyfill/dialog-polyfill.css' before using this
 */

/**
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* stylelint-disable */

/* stylelint-enable */

/* ==========   Sticky Header   ========== */

/* stylelint-disable */

/* stylelint-enable */

/* ==========     Accordion     ========== */

/* ==========     Dialog     ========== */

/* ==========     Lightbox     ========== */

/* ==========  Lightboard  ========== */

/* ==========  Carousel  ========== */

/* ==========  Bordered fields  ========== */

/* ==========  Color Themes  ========== */

dialog.mdlext-dialog {
  position: absolute;
  border: 0;
  opacity: 0;
  padding: 0;
  background-color: transparent;
}

dialog.mdlext-dialog[open] {
  animation: mdlext-open-dialog 0.5s 0.2s forwards;
}

dialog.mdlext-dialog[open]::-webkit-backdrop {
  animation: mdlext-darken-backdrop 0.2s forwards;
}

dialog.mdlext-dialog[open]::backdrop {
  animation: mdlext-darken-backdrop 0.2s forwards;
}

dialog.mdlext-dialog[open] + .backdrop {
  animation: mdlext-darken-backdrop 0.2s forwards;
}

@keyframes mdlext-darken-backdrop {
  to {
    background: rgba(0, 0, 0, 0.86);
  }
}

@keyframes mdlext-open-dialog {
  to {
    opacity: 1;
  }
}

/**
 * This code is modified from Material Design Lite _grid.sass,
 * which is Licensed under the Apache License, Version 2.0
 * Copyright 2015 Google Inc. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

.mdlext-grid {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  margin: 0 auto;
  -ms-flex-align: stretch;
      align-items: stretch;
}

.mdlext-grid.mdlext-grid--no-spacing {
  padding: 0;
}

.mdlext-cell {
  box-sizing: border-box;
}

.mdlext-cell--top {
  -ms-flex-item-align: start;
      align-self: flex-start;
}

.mdlext-cell--middle {
  -ms-flex-item-align: center;
      -ms-grid-row-align: center;
      align-self: center;
}

.mdlext-cell--bottom {
  -ms-flex-item-align: end;
      align-self: flex-end;
}

.mdlext-cell--stretch {
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch;
}

.mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell {
  margin: 0;
}

.mdlext-cell--order-1 {
  -ms-flex-order: 1;
      order: 1;
}

.mdlext-cell--order-2 {
  -ms-flex-order: 2;
      order: 2;
}

.mdlext-cell--order-3 {
  -ms-flex-order: 3;
      order: 3;
}

.mdlext-cell--order-4 {
  -ms-flex-order: 4;
      order: 4;
}

.mdlext-cell--order-5 {
  -ms-flex-order: 5;
      order: 5;
}

.mdlext-cell--order-6 {
  -ms-flex-order: 6;
      order: 6;
}

.mdlext-cell--order-7 {
  -ms-flex-order: 7;
      order: 7;
}

.mdlext-cell--order-8 {
  -ms-flex-order: 8;
      order: 8;
}

.mdlext-cell--order-9 {
  -ms-flex-order: 9;
      order: 9;
}

.mdlext-cell--order-10 {
  -ms-flex-order: 10;
      order: 10;
}

.mdlext-cell--order-11 {
  -ms-flex-order: 11;
      order: 11;
}

.mdlext-cell--order-12 {
  -ms-flex-order: 12;
      order: 12;
}

/* stylelint-disable */

@media (max-width: 479px) {
  /* stylelint-enable */

  .mdlext-grid {
    padding: 8px;
  }

  .mdlext-cell {
    margin: 8px;
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell {
    width: 100%;
  }

  .mdlext-cell--hide-phone {
    display: none !important;
  }

  .mdlext-cell--order-1-phone.mdlext-cell--order-1-phone {
    -ms-flex-order: 1;
        order: 1;
  }

  .mdlext-cell--order-2-phone.mdlext-cell--order-2-phone {
    -ms-flex-order: 2;
        order: 2;
  }

  .mdlext-cell--order-3-phone.mdlext-cell--order-3-phone {
    -ms-flex-order: 3;
        order: 3;
  }

  .mdlext-cell--order-4-phone.mdlext-cell--order-4-phone {
    -ms-flex-order: 4;
        order: 4;
  }

  .mdlext-cell--order-5-phone.mdlext-cell--order-5-phone {
    -ms-flex-order: 5;
        order: 5;
  }

  .mdlext-cell--order-6-phone.mdlext-cell--order-6-phone {
    -ms-flex-order: 6;
        order: 6;
  }

  .mdlext-cell--order-7-phone.mdlext-cell--order-7-phone {
    -ms-flex-order: 7;
        order: 7;
  }

  .mdlext-cell--order-8-phone.mdlext-cell--order-8-phone {
    -ms-flex-order: 8;
        order: 8;
  }

  .mdlext-cell--order-9-phone.mdlext-cell--order-9-phone {
    -ms-flex-order: 9;
        order: 9;
  }

  .mdlext-cell--order-10-phone.mdlext-cell--order-10-phone {
    -ms-flex-order: 10;
        order: 10;
  }

  .mdlext-cell--order-11-phone.mdlext-cell--order-11-phone {
    -ms-flex-order: 11;
        order: 11;
  }

  .mdlext-cell--order-12-phone.mdlext-cell--order-12-phone {
    -ms-flex-order: 12;
        order: 12;
  }

  .mdlext-cell--1-col,
  .mdlext-cell--1-col-phone.mdlext-cell--1-col-phone {
    width: calc(25% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--1-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--1-col-phone.mdlext-cell--1-col-phone {
    width: 25%;
  }

  .mdlext-cell--2-col,
  .mdlext-cell--2-col-phone.mdlext-cell--2-col-phone {
    width: calc(50% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--2-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--2-col-phone.mdlext-cell--2-col-phone {
    width: 50%;
  }

  .mdlext-cell--3-col,
  .mdlext-cell--3-col-phone.mdlext-cell--3-col-phone {
    width: calc(75% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--3-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--3-col-phone.mdlext-cell--3-col-phone {
    width: 75%;
  }

  .mdlext-cell--4-col,
  .mdlext-cell--4-col-phone.mdlext-cell--4-col-phone {
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--4-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--4-col-phone.mdlext-cell--4-col-phone {
    width: 100%;
  }

  .mdlext-cell--5-col,
  .mdlext-cell--5-col-phone.mdlext-cell--5-col-phone {
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--5-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--5-col-phone.mdlext-cell--5-col-phone {
    width: 100%;
  }

  .mdlext-cell--6-col,
  .mdlext-cell--6-col-phone.mdlext-cell--6-col-phone {
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--6-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--6-col-phone.mdlext-cell--6-col-phone {
    width: 100%;
  }

  .mdlext-cell--7-col,
  .mdlext-cell--7-col-phone.mdlext-cell--7-col-phone {
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--7-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--7-col-phone.mdlext-cell--7-col-phone {
    width: 100%;
  }

  .mdlext-cell--8-col,
  .mdlext-cell--8-col-phone.mdlext-cell--8-col-phone {
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--8-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--8-col-phone.mdlext-cell--8-col-phone {
    width: 100%;
  }

  .mdlext-cell--9-col,
  .mdlext-cell--9-col-phone.mdlext-cell--9-col-phone {
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--9-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--9-col-phone.mdlext-cell--9-col-phone {
    width: 100%;
  }

  .mdlext-cell--10-col,
  .mdlext-cell--10-col-phone.mdlext-cell--10-col-phone {
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--10-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--10-col-phone.mdlext-cell--10-col-phone {
    width: 100%;
  }

  .mdlext-cell--11-col,
  .mdlext-cell--11-col-phone.mdlext-cell--11-col-phone {
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--11-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--11-col-phone.mdlext-cell--11-col-phone {
    width: 100%;
  }

  .mdlext-cell--12-col,
  .mdlext-cell--12-col-phone.mdlext-cell--12-col-phone {
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--12-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--12-col-phone.mdlext-cell--12-col-phone {
    width: 100%;
  }

  .mdlext-cell--1-offset,
  .mdlext-cell--1-offset-phone.mdlext-cell--1-offset-phone {
    margin-left: calc(25% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--1-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--1-offset-phone.mdlext-cell--1-offset-phone {
    margin-left: 25%;
  }

  .mdlext-cell--2-offset,
  .mdlext-cell--2-offset-phone.mdlext-cell--2-offset-phone {
    margin-left: calc(50% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--2-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--2-offset-phone.mdlext-cell--2-offset-phone {
    margin-left: 50%;
  }

  .mdlext-cell--3-offset,
  .mdlext-cell--3-offset-phone.mdlext-cell--3-offset-phone {
    margin-left: calc(75% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--3-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--3-offset-phone.mdlext-cell--3-offset-phone {
    margin-left: 75%;
  }
}

/* stylelint-disable */

@media (min-width: 480px) and (max-width: 839px) {
  /* stylelint-enable */

  .mdlext-grid {
    padding: 8px;
  }

  .mdlext-cell {
    margin: 8px;
    width: calc(50% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell {
    width: 50%;
  }

  .mdlext-cell--hide-tablet {
    display: none !important;
  }

  .mdlext-cell--order-1-tablet.mdlext-cell--order-1-tablet {
    -ms-flex-order: 1;
        order: 1;
  }

  .mdlext-cell--order-2-tablet.mdlext-cell--order-2-tablet {
    -ms-flex-order: 2;
        order: 2;
  }

  .mdlext-cell--order-3-tablet.mdlext-cell--order-3-tablet {
    -ms-flex-order: 3;
        order: 3;
  }

  .mdlext-cell--order-4-tablet.mdlext-cell--order-4-tablet {
    -ms-flex-order: 4;
        order: 4;
  }

  .mdlext-cell--order-5-tablet.mdlext-cell--order-5-tablet {
    -ms-flex-order: 5;
        order: 5;
  }

  .mdlext-cell--order-6-tablet.mdlext-cell--order-6-tablet {
    -ms-flex-order: 6;
        order: 6;
  }

  .mdlext-cell--order-7-tablet.mdlext-cell--order-7-tablet {
    -ms-flex-order: 7;
        order: 7;
  }

  .mdlext-cell--order-8-tablet.mdlext-cell--order-8-tablet {
    -ms-flex-order: 8;
        order: 8;
  }

  .mdlext-cell--order-9-tablet.mdlext-cell--order-9-tablet {
    -ms-flex-order: 9;
        order: 9;
  }

  .mdlext-cell--order-10-tablet.mdlext-cell--order-10-tablet {
    -ms-flex-order: 10;
        order: 10;
  }

  .mdlext-cell--order-11-tablet.mdlext-cell--order-11-tablet {
    -ms-flex-order: 11;
        order: 11;
  }

  .mdlext-cell--order-12-tablet.mdlext-cell--order-12-tablet {
    -ms-flex-order: 12;
        order: 12;
  }

  .mdlext-cell--1-col,
  .mdlext-cell--1-col-tablet.mdlext-cell--1-col-tablet {
    width: calc(12.5% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--1-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--1-col-tablet.mdlext-cell--1-col-tablet {
    width: 12.5%;
  }

  .mdlext-cell--2-col,
  .mdlext-cell--2-col-tablet.mdlext-cell--2-col-tablet {
    width: calc(25% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--2-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--2-col-tablet.mdlext-cell--2-col-tablet {
    width: 25%;
  }

  .mdlext-cell--3-col,
  .mdlext-cell--3-col-tablet.mdlext-cell--3-col-tablet {
    width: calc(37.5% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--3-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--3-col-tablet.mdlext-cell--3-col-tablet {
    width: 37.5%;
  }

  .mdlext-cell--4-col,
  .mdlext-cell--4-col-tablet.mdlext-cell--4-col-tablet {
    width: calc(50% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--4-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--4-col-tablet.mdlext-cell--4-col-tablet {
    width: 50%;
  }

  .mdlext-cell--5-col,
  .mdlext-cell--5-col-tablet.mdlext-cell--5-col-tablet {
    width: calc(62.5% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--5-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--5-col-tablet.mdlext-cell--5-col-tablet {
    width: 62.5%;
  }

  .mdlext-cell--6-col,
  .mdlext-cell--6-col-tablet.mdlext-cell--6-col-tablet {
    width: calc(75% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--6-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--6-col-tablet.mdlext-cell--6-col-tablet {
    width: 75%;
  }

  .mdlext-cell--7-col,
  .mdlext-cell--7-col-tablet.mdlext-cell--7-col-tablet {
    width: calc(87.5% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--7-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--7-col-tablet.mdlext-cell--7-col-tablet {
    width: 87.5%;
  }

  .mdlext-cell--8-col,
  .mdlext-cell--8-col-tablet.mdlext-cell--8-col-tablet {
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--8-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--8-col-tablet.mdlext-cell--8-col-tablet {
    width: 100%;
  }

  .mdlext-cell--9-col,
  .mdlext-cell--9-col-tablet.mdlext-cell--9-col-tablet {
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--9-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--9-col-tablet.mdlext-cell--9-col-tablet {
    width: 100%;
  }

  .mdlext-cell--10-col,
  .mdlext-cell--10-col-tablet.mdlext-cell--10-col-tablet {
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--10-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--10-col-tablet.mdlext-cell--10-col-tablet {
    width: 100%;
  }

  .mdlext-cell--11-col,
  .mdlext-cell--11-col-tablet.mdlext-cell--11-col-tablet {
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--11-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--11-col-tablet.mdlext-cell--11-col-tablet {
    width: 100%;
  }

  .mdlext-cell--12-col,
  .mdlext-cell--12-col-tablet.mdlext-cell--12-col-tablet {
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--12-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--12-col-tablet.mdlext-cell--12-col-tablet {
    width: 100%;
  }

  .mdlext-cell--1-offset,
  .mdlext-cell--1-offset-tablet.mdlext-cell--1-offset-tablet {
    margin-left: calc(12.5% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--1-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--1-offset-tablet.mdlext-cell--1-offset-tablet {
    margin-left: 12.5%;
  }

  .mdlext-cell--2-offset,
  .mdlext-cell--2-offset-tablet.mdlext-cell--2-offset-tablet {
    margin-left: calc(25% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--2-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--2-offset-tablet.mdlext-cell--2-offset-tablet {
    margin-left: 25%;
  }

  .mdlext-cell--3-offset,
  .mdlext-cell--3-offset-tablet.mdlext-cell--3-offset-tablet {
    margin-left: calc(37.5% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--3-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--3-offset-tablet.mdlext-cell--3-offset-tablet {
    margin-left: 37.5%;
  }

  .mdlext-cell--4-offset,
  .mdlext-cell--4-offset-tablet.mdlext-cell--4-offset-tablet {
    margin-left: calc(50% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--4-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--4-offset-tablet.mdlext-cell--4-offset-tablet {
    margin-left: 50%;
  }

  .mdlext-cell--5-offset,
  .mdlext-cell--5-offset-tablet.mdlext-cell--5-offset-tablet {
    margin-left: calc(62.5% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--5-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--5-offset-tablet.mdlext-cell--5-offset-tablet {
    margin-left: 62.5%;
  }

  .mdlext-cell--6-offset,
  .mdlext-cell--6-offset-tablet.mdlext-cell--6-offset-tablet {
    margin-left: calc(75% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--6-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--6-offset-tablet.mdlext-cell--6-offset-tablet {
    margin-left: 75%;
  }

  .mdlext-cell--7-offset,
  .mdlext-cell--7-offset-tablet.mdlext-cell--7-offset-tablet {
    margin-left: calc(87.5% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--7-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--7-offset-tablet.mdlext-cell--7-offset-tablet {
    margin-left: 87.5%;
  }
}

@media (min-width: 840px) {
  .mdlext-grid {
    padding: 8px;
  }

  .mdlext-cell {
    margin: 8px;
    width: calc(33.33333% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell {
    width: 33.33333%;
  }

  .mdlext-cell--hide-desktop {
    display: none !important;
  }

  .mdlext-cell--order-1-desktop.mdlext-cell--order-1-desktop {
    -ms-flex-order: 1;
        order: 1;
  }

  .mdlext-cell--order-2-desktop.mdlext-cell--order-2-desktop {
    -ms-flex-order: 2;
        order: 2;
  }

  .mdlext-cell--order-3-desktop.mdlext-cell--order-3-desktop {
    -ms-flex-order: 3;
        order: 3;
  }

  .mdlext-cell--order-4-desktop.mdlext-cell--order-4-desktop {
    -ms-flex-order: 4;
        order: 4;
  }

  .mdlext-cell--order-5-desktop.mdlext-cell--order-5-desktop {
    -ms-flex-order: 5;
        order: 5;
  }

  .mdlext-cell--order-6-desktop.mdlext-cell--order-6-desktop {
    -ms-flex-order: 6;
        order: 6;
  }

  .mdlext-cell--order-7-desktop.mdlext-cell--order-7-desktop {
    -ms-flex-order: 7;
        order: 7;
  }

  .mdlext-cell--order-8-desktop.mdlext-cell--order-8-desktop {
    -ms-flex-order: 8;
        order: 8;
  }

  .mdlext-cell--order-9-desktop.mdlext-cell--order-9-desktop {
    -ms-flex-order: 9;
        order: 9;
  }

  .mdlext-cell--order-10-desktop.mdlext-cell--order-10-desktop {
    -ms-flex-order: 10;
        order: 10;
  }

  .mdlext-cell--order-11-desktop.mdlext-cell--order-11-desktop {
    -ms-flex-order: 11;
        order: 11;
  }

  .mdlext-cell--order-12-desktop.mdlext-cell--order-12-desktop {
    -ms-flex-order: 12;
        order: 12;
  }

  .mdlext-cell--1-col,
  .mdlext-cell--1-col-desktop.mdlext-cell--1-col-desktop {
    width: calc(8.33333% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--1-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--1-col-desktop.mdlext-cell--1-col-desktop {
    width: 8.33333%;
  }

  .mdlext-cell--2-col,
  .mdlext-cell--2-col-desktop.mdlext-cell--2-col-desktop {
    width: calc(16.66667% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--2-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--2-col-desktop.mdlext-cell--2-col-desktop {
    width: 16.66667%;
  }

  .mdlext-cell--3-col,
  .mdlext-cell--3-col-desktop.mdlext-cell--3-col-desktop {
    width: calc(25% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--3-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--3-col-desktop.mdlext-cell--3-col-desktop {
    width: 25%;
  }

  .mdlext-cell--4-col,
  .mdlext-cell--4-col-desktop.mdlext-cell--4-col-desktop {
    width: calc(33.33333% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--4-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--4-col-desktop.mdlext-cell--4-col-desktop {
    width: 33.33333%;
  }

  .mdlext-cell--5-col,
  .mdlext-cell--5-col-desktop.mdlext-cell--5-col-desktop {
    width: calc(41.66667% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--5-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--5-col-desktop.mdlext-cell--5-col-desktop {
    width: 41.66667%;
  }

  .mdlext-cell--6-col,
  .mdlext-cell--6-col-desktop.mdlext-cell--6-col-desktop {
    width: calc(50% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--6-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--6-col-desktop.mdlext-cell--6-col-desktop {
    width: 50%;
  }

  .mdlext-cell--7-col,
  .mdlext-cell--7-col-desktop.mdlext-cell--7-col-desktop {
    width: calc(58.33333% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--7-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--7-col-desktop.mdlext-cell--7-col-desktop {
    width: 58.33333%;
  }

  .mdlext-cell--8-col,
  .mdlext-cell--8-col-desktop.mdlext-cell--8-col-desktop {
    width: calc(66.66667% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--8-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--8-col-desktop.mdlext-cell--8-col-desktop {
    width: 66.66667%;
  }

  .mdlext-cell--9-col,
  .mdlext-cell--9-col-desktop.mdlext-cell--9-col-desktop {
    width: calc(75% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--9-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--9-col-desktop.mdlext-cell--9-col-desktop {
    width: 75%;
  }

  .mdlext-cell--10-col,
  .mdlext-cell--10-col-desktop.mdlext-cell--10-col-desktop {
    width: calc(83.33333% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--10-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--10-col-desktop.mdlext-cell--10-col-desktop {
    width: 83.33333%;
  }

  .mdlext-cell--11-col,
  .mdlext-cell--11-col-desktop.mdlext-cell--11-col-desktop {
    width: calc(91.66667% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--11-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--11-col-desktop.mdlext-cell--11-col-desktop {
    width: 91.66667%;
  }

  .mdlext-cell--12-col,
  .mdlext-cell--12-col-desktop.mdlext-cell--12-col-desktop {
    width: calc(100% - 16px);
  }

  .mdlext-grid--no-spacing > .mdlext-cell--12-col,
  .mdlext-grid--no-spacing >
    .mdlext-cell--12-col-desktop.mdlext-cell--12-col-desktop {
    width: 100%;
  }

  .mdlext-cell--1-offset,
  .mdlext-cell--1-offset-desktop.mdlext-cell--1-offset-desktop {
    margin-left: calc(8.33333% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--1-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--1-offset-desktop.mdlext-cell--1-offset-desktop {
    margin-left: 8.33333%;
  }

  .mdlext-cell--2-offset,
  .mdlext-cell--2-offset-desktop.mdlext-cell--2-offset-desktop {
    margin-left: calc(16.66667% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--2-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--2-offset-desktop.mdlext-cell--2-offset-desktop {
    margin-left: 16.66667%;
  }

  .mdlext-cell--3-offset,
  .mdlext-cell--3-offset-desktop.mdlext-cell--3-offset-desktop {
    margin-left: calc(25% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--3-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--3-offset-desktop.mdlext-cell--3-offset-desktop {
    margin-left: 25%;
  }

  .mdlext-cell--4-offset,
  .mdlext-cell--4-offset-desktop.mdlext-cell--4-offset-desktop {
    margin-left: calc(33.33333% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--4-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--4-offset-desktop.mdlext-cell--4-offset-desktop {
    margin-left: 33.33333%;
  }

  .mdlext-cell--5-offset,
  .mdlext-cell--5-offset-desktop.mdlext-cell--5-offset-desktop {
    margin-left: calc(41.66667% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--5-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--5-offset-desktop.mdlext-cell--5-offset-desktop {
    margin-left: 41.66667%;
  }

  .mdlext-cell--6-offset,
  .mdlext-cell--6-offset-desktop.mdlext-cell--6-offset-desktop {
    margin-left: calc(50% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--6-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--6-offset-desktop.mdlext-cell--6-offset-desktop {
    margin-left: 50%;
  }

  .mdlext-cell--7-offset,
  .mdlext-cell--7-offset-desktop.mdlext-cell--7-offset-desktop {
    margin-left: calc(58.33333% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--7-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--7-offset-desktop.mdlext-cell--7-offset-desktop {
    margin-left: 58.33333%;
  }

  .mdlext-cell--8-offset,
  .mdlext-cell--8-offset-desktop.mdlext-cell--8-offset-desktop {
    margin-left: calc(66.66667% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--8-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--8-offset-desktop.mdlext-cell--8-offset-desktop {
    margin-left: 66.66667%;
  }

  .mdlext-cell--9-offset,
  .mdlext-cell--9-offset-desktop.mdlext-cell--9-offset-desktop {
    margin-left: calc(75% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--9-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--9-offset-desktop.mdlext-cell--9-offset-desktop {
    margin-left: 75%;
  }

  .mdlext-cell--10-offset,
  .mdlext-cell--10-offset-desktop.mdlext-cell--10-offset-desktop {
    margin-left: calc(83.33333% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--10-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--10-offset-desktop.mdlext-cell--10-offset-desktop {
    margin-left: 83.33333%;
  }

  .mdlext-cell--11-offset,
  .mdlext-cell--11-offset-desktop.mdlext-cell--11-offset-desktop {
    margin-left: calc(91.66667% + 8px);
  }

  .mdlext-grid.mdlext-grid--no-spacing > .mdlext-cell--11-offset,
  .mdlext-grid.mdlext-grid--no-spacing >
    .mdlext-cell--11-offset-desktop.mdlext-cell--11-offset-desktop {
    margin-left: 91.66667%;
  }
}

/**
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 * A lightboard is a translucent surface illuminated from behind, used for situations
 * where a shape laid upon the surface needs to be seen with high contrast. In the "old days" of photography
 * photograpers used a lightboard to get a quick view of their slides. The goal is to create a responsive lightbox
 * design, based on flex layout, similar to what is used in Adobe LightRoom to browse images.
 */

/**
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* stylelint-disable */

/* stylelint-enable */

/* ==========   Sticky Header   ========== */

/* stylelint-disable */

/* stylelint-enable */

/* ==========     Accordion     ========== */

/* ==========     Dialog     ========== */

/* ==========     Lightbox     ========== */

/* ==========  Lightboard  ========== */

/* ==========  Carousel  ========== */

/* ==========  Bordered fields  ========== */

/* ==========  Color Themes  ========== */

ul.mdlext-lightboard {
  list-style: none;
}

.mdlext-lightboard {
  box-sizing: border-box;
  margin: 0 auto;
  padding: 0;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-flow: row wrap;
      flex-flow: row wrap;
  -ms-flex-align: stretch;
      align-items: stretch;
}

.mdlext-lightboard *,
.mdlext-lightboard *::before,
.mdlext-lightboard *::after,
.mdlext-lightboard input[type="search"] {
  box-sizing: border-box;
}

.mdlext-lightboard .mdlext-lightboard__slide {
  background-color: #F8F8F8;
  border: 1px solid #D8D8D8;
  border-radius: 5px;
  box-shadow: 2px 2px 6px -1px rgba(219, 215, 219, 0.5);
  position: relative;
  display: block;
  max-width: 250px;
}

.mdlext-lightboard .mdlext-lightboard__slide::before {
  content: '';
  display: block;
  padding-top: 100%;
}

.mdlext-lightboard .mdlext-lightboard__slide:hover,
.mdlext-lightboard .mdlext-lightboard__slide:active,
.mdlext-lightboard .mdlext-lightboard__slide:focus {
  border-color: #B8B8B8;
  background-color: #E8E8E8;
  box-shadow: 2px 2px 12px -1px #dbd7db;
}

.mdlext-lightboard .mdlext-lightboard__slide:hover figcaption,
.mdlext-lightboard .mdlext-lightboard__slide:active figcaption,
.mdlext-lightboard .mdlext-lightboard__slide:focus figcaption {
  color: black !important;
  background-color: rgba(255, 255, 255, 0.2);
}

.mdlext-lightboard .mdlext-lightboard__slide:focus {
  outline-offset: -2px;
  outline-color: inherit;
}

.mdlext-lightboard .mdlext-lightboard__slide[aria-selected='true'] {
  background-color: #E8E8E8;
}

.mdlext-lightboard .mdlext-lightboard__slide[aria-selected='true'] figcaption {
  color: black !important;
  background-color: rgba(255, 255, 255, 0.2);
}

.mdlext-lightboard .mdlext-lightboard__slide__frame,
.mdlext-lightboard .mdlext-lightboard__slide__ripple-container {
  text-decoration: none;
  display: block;
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.mdlext-lightboard .mdlext-lightboard__slide__frame:focus,
.mdlext-lightboard .mdlext-lightboard__slide__ripple-container:focus {
  outline-offset: -2px;
  outline-color: inherit;
}

.mdlext-lightboard .mdlext-lightboard__slide__frame .mdl-ripple,
.mdlext-lightboard .mdlext-lightboard__slide__ripple-container .mdl-ripple {
  background: rgb(63,81,181);
}

.mdlext-lightboard .mdlext-lightboard__slide__frame figure,
.mdlext-lightboard .mdlext-lightboard__slide__ripple-container figure {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.mdlext-lightboard .mdlext-lightboard__slide__frame figure img,
.mdlext-lightboard .mdlext-lightboard__slide__ripple-container figure img {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  max-width: 100%;
  max-height: 100%;
  border-width: 0;
  border-radius: 3px;
}

.mdlext-lightboard .mdlext-lightboard__slide__frame figure figcaption,
.mdlext-lightboard .mdlext-lightboard__slide__ripple-container figure figcaption {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  color: #bdbdbd;
  position: absolute;
  bottom: -2px;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  width: 100%;
  text-align: center;
  text-overflow: ellipsis;
  padding: 4px 0;
}

.mdlext-lightboard .mdlext-lightboard__slide__frame:hover figcaption,
.mdlext-lightboard .mdlext-lightboard__slide__ripple-container:hover figcaption {
  color: black !important;
  background-color: rgba(255, 255, 255, 0.2);
}

.mdlext-lightboard {
  padding: calc((0 - 2px) / 2);
}

.mdlext-lightboard .mdlext-lightboard__slide {
  margin: calc(2px / 2);
  width: calc(1 / 2 * 100% - 2px);
}

.mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure {
  margin: 8px;
}

.mdlext-lightboard.mdlext-lightboard--no-spacing {
  padding: 0;
}

.mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide {
  margin: 0;
  width: calc(1 / 2 * 100%);
}

/**
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* stylelint-disable */

/* stylelint-enable */

/* ==========   Sticky Header   ========== */

/* stylelint-disable */

/* stylelint-enable */

/* ==========     Accordion     ========== */

/* ==========     Dialog     ========== */

/* ==========     Lightbox     ========== */

/* ==========  Lightboard  ========== */

/* ==========  Carousel  ========== */

/* ==========  Bordered fields  ========== */

/* ==========  Color Themes  ========== */

/* stylelint-disable */

@media (min-width: 480px) and (max-width: 659px) {
  /* stylelint-enable */

  .mdlext-lightboard {
    padding: calc((0 - 4px) / 2);
  }

  .mdlext-lightboard .mdlext-lightboard__slide {
    margin: calc(4px / 2);
    width: calc(1 / 4 * 100% - 4px);
  }

  .mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure {
    margin: 8px;
  }

  .mdlext-lightboard.mdlext-lightboard--no-spacing {
    padding: 0;
  }

  .mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide {
    margin: 0;
    width: calc(1 / 4 * 100%);
  }
}

/* stylelint-disable */

@media (min-width: 660px) and (max-width: 839px) {
  /* stylelint-enable */

  .mdlext-lightboard {
    padding: calc((0 - 4px) / 2);
  }

  .mdlext-lightboard .mdlext-lightboard__slide {
    margin: calc(4px / 2);
    width: calc(1 / 5 * 100% - 4px);
  }

  .mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure {
    margin: 8px;
  }

  .mdlext-lightboard.mdlext-lightboard--no-spacing {
    padding: 0;
  }

  .mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide {
    margin: 0;
    width: calc(1 / 5 * 100%);
  }
}

/* stylelint-disable */

@media (min-width: 840px) and (max-width: 1199px) {
  /* stylelint-enable */

  .mdlext-lightboard {
    padding: calc((0 - 8px) / 2);
  }

  .mdlext-lightboard .mdlext-lightboard__slide {
    margin: calc(8px / 2);
    width: calc(1 / 6 * 100% - 8px);
  }

  .mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure {
    margin: 12px;
  }

  .mdlext-lightboard.mdlext-lightboard--no-spacing {
    padding: 0;
  }

  .mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide {
    margin: 0;
    width: calc(1 / 6 * 100%);
  }
}

@media (min-width: 1200px) {
  .mdlext-lightboard {
    padding: calc((0 - 8px) / 2);
  }

  .mdlext-lightboard .mdlext-lightboard__slide {
    margin: calc(8px / 2);
    width: calc(1 / 7 * 100% - 8px);
  }

  .mdlext-lightboard .mdlext-lightboard__slide .mdlext-lightboard__slide__frame figure {
    margin: 12px;
  }

  .mdlext-lightboard.mdlext-lightboard--no-spacing {
    padding: 0;
  }

  .mdlext-lightboard.mdlext-lightboard--no-spacing .mdlext-lightboard__slide {
    margin: 0;
    width: calc(1 / 7 * 100%);
  }
}

/**
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* stylelint-disable */

/* stylelint-enable */

/* ==========   Sticky Header   ========== */

/* stylelint-disable */

/* stylelint-enable */

/* ==========     Accordion     ========== */

/* ==========     Dialog     ========== */

/* ==========     Lightbox     ========== */

/* ==========  Lightboard  ========== */

/* ==========  Carousel  ========== */

/* ==========  Bordered fields  ========== */

/* ==========  Color Themes  ========== */

.mdlext-lightbox {
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  cursor: default;
  position: relative;
  width: auto;
  max-width: 100%;
  margin: 0 auto;
  border: 0;
  border-radius: 0;
  background-color: rgb(255,255,255);
  box-sizing: border-box;
  outline: 0;
  display: block;
}

.mdlext-lightbox *,
.mdlext-lightbox *::before,
.mdlext-lightbox *::after,
.mdlext-lightbox input[type="search"] {
  box-sizing: border-box;
}

.mdlext-lightbox .mdlext-lightbox__slider {
  position: absolute;
  top: 0;
  left: 0;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
      justify-content: center;
}

.mdlext-lightbox .mdlext-lightbox__slider .mdlext-lightbox__slider__slide {
  -ms-flex-negative: 0;
      flex-shrink: 0;
  display: block;
  text-align: left;
  color: #7f7f7f;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.mdlext-lightbox figure {
  margin: 0;
  padding: 0;
  position: relative;
}

.mdlext-lightbox figure img {
  width: 100%;
  max-width: 100%;
  height: auto;
  border: 0;
  outline: 0;
}

.mdlext-lightbox figure figcaption {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  max-width: 100%;
  height: auto;
  max-height: 50%;
  overflow: auto;
  padding: 8px;
  background-color: rgba(255, 255, 255, 0.76);
  transform-origin: bottom;
  transform: scaleY(0);
  transition: 0.2s ease-in-out;
}

.mdlext-lightbox figure figcaption.mdlext-lightbox__show-figcaption {
  transform: scaleY(1);
}

.mdlext-lightbox figure figcaption tbody th {
  text-align: left;
}

.mdlext-lightbox figure figcaption tbody th,
.mdlext-lightbox figure figcaption tbody td {
  vertical-align: text-top;
}

.mdlext-lightbox .mdl-card__menu {
  color: #ffffff;
  z-index: 1;
}

.mdlext-lightbox footer {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: justify;
      justify-content: space-between;
  -ms-flex-align: center;
      align-items: center;
  background-color: rgba(255, 255, 255, 0.86);
}

.mdlext-lightbox footer .mdl-card__supporting-text {
  -ms-flex: 1;
      flex: 1;
  overflow: hidden;
  padding: 0;
  height: 18px;
  width: 100%;
}

.mdlext-lightbox footer nav {
  display: -ms-flexbox;
  display: flex;
}

.mdlext-lightbox.mdlext-lightbox--sticky-footer footer {
  position: fixed;
  bottom: 0;
  left: 0;
}

/**
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 * A carousel ...
 */

ul.mdlext-carousel {
  list-style: none;
}

.mdlext-carousel {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  overflow: hidden;
  height: 100%;
  width: 100%;
  display: block;
  white-space: nowrap;
  font-size: 0;
  background-color: transparent;
}

.mdlext-carousel__slide {
  box-sizing: border-box;
  display: inline-block;
  position: relative;
  outline: 0;
  margin: 0 0;
  padding: 0;
  height: 100%;
  border-top: 2px solid transparent;
}

.mdlext-carousel__slide[aria-selected] figcaption,
.mdlext-carousel__slide[aria-selected='true'] figcaption {
  color: black !important;
  background-color: rgba(255, 255, 255, 0.25);
}

.mdlext-carousel__slide[aria-selected]::after,
.mdlext-carousel__slide[aria-selected='true']::after {
  height: 2px;
  width: 100%;
  display: block;
  content: ' ';
  top: -2px;
  left: 0;
  position: absolute;
  background: #ff4081;
  animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
  transition: all 1s cubic-bezier(0.4, 0, 1, 1);
}

.mdlext-carousel__slide a {
  text-decoration: none;
}

.mdlext-carousel__slide figure {
  box-sizing: border-box;
  position: relative;
  height: 100%;
  margin: 0;
  padding: 0;
}

.mdlext-carousel__slide figure img {
  box-sizing: border-box;
  max-height: 100%;
}

.mdlext-carousel__slide figure figcaption {
  box-sizing: border-box;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 12px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  color: #bdbdbd;
  position: absolute;
  bottom: 0;
  left: 0;
  white-space: nowrap;
  overflow: hidden;
  max-width: 100%;
  width: 100%;
  text-align: center;
  text-overflow: ellipsis;
  padding: 4px 0;
}

.mdlext-carousel__slide figure:hover figcaption {
  color: black !important;
  background-color: rgba(255, 255, 255, 0.25);
}

.mdlext-carousel__slide .mdlext-carousel__slide__ripple-container {
  text-decoration: none;
  display: block;
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  outline: 0;
}

.mdlext-carousel__slide .mdlext-carousel__slide__ripple-container .mdl-ripple {
  background: rgb(63,81,181);
}

/**
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 * Copied/Modified/Inspired from/by:
 *   https://github.com/google/material-design-lite/tree/master/src/textfield
 *   http://red-team-design.com/making-html-dropdowns-not-suck/
 *   http://codepen.io/etcpe9/pen/PqyOye,
 *   http://codepen.io/pudgereyem/pen/PqBxQx
 *   https://github.com/MEYVN-digital/mdl-selectfield
 *   https://github.com/mebibou/mdl-selectfield
 */

/* stylelint-disable */

/* stylelint-enable */

.mdlext-selectfield {
  box-sizing: border-box;
  position: relative;
  font-size: 16px;
  display: inline-block;
  width: 300px;
  max-width: 100%;
  margin: 0;
  padding: 20px 0;
}

.mdlext-selectfield .mdl-button {
  bottom: 20px;
  position: absolute;
}

.mdlext-selectfield::after {
  content: '';
  width: 0;
  height: 0;
  font-size: inherit;
  line-height: inherit;
  border-top: 0.5em solid inherit;
  border-top-width: 0.5em;
  border-top-style: solid;
  border-top-color: inherit;
  border-left: 0.35em solid transparent;
  border-right: 0.35em solid transparent;
  position: absolute;
  right: 0.5em;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}

.mdlext-selectfield.is-disabled::after {
  color: rgba(0,0,0, 0.12);
  content: '';
  width: 0;
  height: 0;
  font-size: inherit;
  line-height: inherit;
  border-top: 0.5em solid rgba(0,0,0, 0.12);
  border-top-width: 0.5em;
  border-top-style: solid;
  border-top-color: rgba(0,0,0, 0.12);
  border-left: 0.35em solid transparent;
  border-right: 0.35em solid transparent;
}

.mdlext-selectfield--align-right {
  text-align: right;
}

.mdlext-selectfield--full-width {
  width: 100%;
}

.mdlext-selectfield--expandable {
  min-height: 32px;
  min-width: 32px;
  width: auto;
}

.mdlext-selectfield__select {
  box-sizing: border-box;
  border: 0;
  border-radius: 0;
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  appearance: none;
  text-indent: 0.01px;
  text-overflow: '';
  outline: none;
  box-shadow: none;
  font-size: 16px;
  font-family: "Helvetica", "Arial", sans-serif;
  padding: 4px calc(1.2em + 4px) 4px 0;
  width: 100%;
  border-bottom: 1px solid rgba(0,0,0, 0.12);
  display: block;
  margin: 0;
  background: none;
  text-align: left;
  color: inherit;
}

.mdlext-selectfield__select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000000;
}

.mdlext-selectfield__select:focus::-ms-value {
  background-color: inherit;
  color: inherit;
}

.mdlext-selectfield__select::-ms-expand {
  display: none;
}

.mdlext-selectfield.is-focused .mdlext-selectfield__select {
  outline: none;
}

.mdlext-selectfield.is-invalid .mdlext-selectfield__select {
  border-color: rgb(213,0,0);
  box-shadow: none;
}

fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,
.mdlext-selectfield.is-disabled .mdlext-selectfield__select {
  border-bottom: 1px dotted rgba(0,0,0, 0.12);
  color: rgba(0,0,0, 0.26);
  background-color: transparent;
}

.mdlext-selectfield__select option {
  color: rgba(0,0,0, 0.87);
  box-sizing: border-box;
  background-color: inherit;
}

.mdlext-selectfield__label {
  box-sizing: border-box;
  color: rgba(0,0,0, 0.26);
  font-size: 16px;
  top: 24px;
  bottom: 0;
  left: 0;
  right: 0;
  pointer-events: none;
  position: absolute;
  display: block;
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
  text-align: left;
}

.mdlext-selectfield.is-dirty .mdlext-selectfield__label,
.mdlext-selectfield.has-placeholder .mdlext-selectfield__label {
  visibility: hidden;
}

.mdlext-selectfield--floating-label .mdlext-selectfield__label {
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
  transition: none;
}

fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,
.mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {
  color: rgba(0,0,0, 0.26);
}

.mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,
.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
  color: rgb(63,81,181);
  font-size: 12px;
  top: 4px;
  visibility: visible;
}

.mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__expandable-holder .mdlext-selectfield__label,
.mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__expandable-holder .mdlext-selectfield__label,
.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__expandable-holder .mdlext-selectfield__label {
  top: -16px;
}

.mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {
  color: rgb(213,0,0);
  font-size: 12px;
}

.mdlext-selectfield__label::after {
  background-color: rgb(63,81,181);
  bottom: 20px;
  content: '';
  height: 2px;
  left: 45%;
  position: absolute;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  visibility: hidden;
  width: 10px;
}

.mdlext-selectfield.is-focused .mdlext-selectfield__label::after {
  left: 0;
  visibility: visible;
  width: 100%;
}

.mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {
  background-color: rgb(213,0,0);
}

.mdlext-selectfield__error {
  color: rgb(213,0,0);
  font-size: 12px;
  position: absolute;
  margin-top: 3px;
  visibility: hidden;
  display: block;
}

.mdlext-selectfield.is-invalid .mdlext-selectfield__error {
  visibility: visible;
}

.mdlext-selectfield__expandable-holder {
  display: inline-block;
  position: relative;
  margin-left: 32px;
  transition-duration: 0.2s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  max-width: 0.1px;
}

.mdlext-selectfield.is-focused .mdlext-selectfield__expandable-holder,
.mdlext-selectfield.is-dirty .mdlext-selectfield__expandable-holder {
  max-width: 600px;
}

.mdlext-selectfield__expandable-holder .mdlext-selectfield__label::after {
  bottom: 0;
}

/**
 * @license
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * This code is built with Google Material Design Lite,
 * which is Licensed under the Apache License, Version 2.0
 */

/* Moved to aria-expanded-toggle.scss

.mdlext-aria-expanded-plus-minus {
  @include mdlext-aria-expanded-toggle($font-family: inherit);
}

.mdlext-aria-expanded-more-less {
  @include mdlext-aria-expanded-toggle($icon: 'expand_more', $icon-expanded: 'expand_less');
}
*/

.mdlext-menu-button {
  box-sizing: border-box;
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0;
  text-transform: none;
  position: relative;
  height: 36px;
  padding: 0 16px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-item-align: stretch;
      align-self: stretch;
}

.mdlext-menu-button > * {
  margin: 0;
  padding: 0 0 0 8px;
}

.mdlext-menu-button > *:first-child {
  padding-left: 0;
}

.mdlext-menu-button > *:last-child:not(:only-child):not(.mdlext-menu__item__caption) {
  margin-left: auto;
}

.mdlext-menu-button__caption {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}

.mdlext-menu,
.mdlext-menu__item {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  list-style: none;
  display: -ms-flexbox;
  display: flex;
}

.mdlext-menu {
  position: absolute;
  background: rgb(255,255,255);
  z-index: 1000;
  min-width: 124px;
  border-radius: 2px;
  box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 1px 8px 0 rgba(0, 0, 0, 0.12);
  display: -ms-inline-flexbox;
  display: inline-flex;
  -ms-flex-direction: column;
      flex-direction: column;
  padding: 0;
  overflow: hidden;
  overflow-y: auto;
}

.mdlext-menu:focus {
  outline-offset: -1px;
  outline-width: 1px;
}

.mdlext-menu[hidden] {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  pointer-events: none;
}

.mdlext-menu__item {
  font-size: 14px;
  font-weight: 400;
  line-height: 24px;
  letter-spacing: 0;
  color: rgba(0,0,0, 0.87);
  background-color: rgb(255,255,255);
  position: relative;
  padding: 0 16px 0 24px;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-item-align: stretch;
      -ms-grid-row-align: stretch;
      align-self: stretch;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  min-height: 40px;
  overflow: hidden;
}

.mdlext-menu__item[aria-selected='true'] {
  background-color: rgb(224,224,224);
}

.mdlext-menu__item[aria-selected='true']::before {
  content: '\2713';
  position: absolute;
  font-size: 1.4em;
  left: 4px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
}

.mdlext-menu__item:hover:not([disabled]) {
  background-color: rgb(238,238,238);
}

.mdlext-menu__item:focus {
  outline-offset: -2px;
  outline-width: 1px;
  outline-color: rgb(189,189,189);
  background-color: rgb(238,238,238);
}

.mdlext-menu__item::-moz-focus-inner {
  border: 0;
}

.mdlext-menu__item[disabled] {
  color: rgb(189,189,189);
  background-color: transparent;
  cursor: auto;
  pointer-events: none;
}

.mdlext-menu__item[disabled] > * {
  color: rgb(189,189,189);
}

.mdlext-menu__item__caption {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mdlext-menu__item > * {
  margin: 0;
  padding: 0 0 0 8px;
}

.mdlext-menu__item > *:first-child {
  padding-left: 0;
}

.mdlext-menu__item > *:last-child:not(:only-child):not(.mdlext-menu__item__caption) {
  margin-left: auto;
}

.mdlext-menu__item-separator {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid rgba(0,0,0, 0.12);
}

/**
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/*
 * The bordered fields are based on / inspired by this CodePen: http://codepen.io/prajwal078/pen/LVJZXz?editors=010
 */

/**
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* stylelint-disable */

/* stylelint-enable */

/* ==========   Sticky Header   ========== */

/* stylelint-disable */

/* stylelint-enable */

/* ==========     Accordion     ========== */

/* ==========     Dialog     ========== */

/* ==========     Lightbox     ========== */

/* ==========  Lightboard  ========== */

/* ==========  Carousel  ========== */

/* ==========  Bordered fields  ========== */

/* ==========  Color Themes  ========== */

/* stylelint-disable */

/* stylelint-enable */

.mdlext-bordered-fields {
  box-sizing: border-box;
}

.mdlext-bordered-fields * {
  box-sizing: border-box;
}

.mdlext-bordered-fields .mdl-textfield,
.mdlext-bordered-fields .mdlext-selectfield {
  padding: 0;
  margin: 0 0 20px 0;
  /*
    &.is-dirty {
      .mdl-textfield__input,
      .mdlext-selectfield__select {
      }
    }
    */
}

.mdlext-bordered-fields .mdl-textfield .mdl-textfield__input,
.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,
.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input,
.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select {
  height: 46px;
  background-color: rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(0, 0, 0, 0.26);
  border-radius: 3px;
  padding: 20px 8px 4px 8px;
  font-size: 16px;
  font-weight: normal;
  color: inherit;
}

.mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:disabled,
.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:disabled,
.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:disabled,
.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:disabled {
  color: rgba(0, 0, 0, 0.12);
  background-color: rgba(255, 255, 255, 0.2);
  border-color: rgba(0, 0, 0, 0.12);
}

.mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:focus,
.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:focus,
.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:focus,
.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:focus {
  background-color: rgba(238, 238, 238, 0.2);
  border-color: #3f51b5;
}

.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,
.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select {
  padding-right: calc(1em + 8px);
}

.mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input,
.mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select,
.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input,
.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
  color: inherit;
  border-color: #d50000;
  background-color: rgba(255, 213, 213, 0.5);
}

.mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input:focus,
.mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select:focus,
.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input:focus,
.mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select:focus {
  border-color: #a20000;
  background-color: rgba(255, 213, 213, 0.5);
}

.mdlext-bordered-fields .mdlext-selectfield::after {
  top: auto;
  bottom: 4px;
}

.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield::after,
.mdlext-bordered-fields .mdlext-selectfield.is-disabled::after {
  color: rgba(0, 0, 0, 0.12);
  content: '';
  width: 0;
  height: 0;
  font-size: inherit;
  line-height: inherit;
  border-top: 0.5em solid rgba(0, 0, 0, 0.12);
  border-top-width: 0.5em;
  border-top-style: solid;
  border-top-color: rgba(0, 0, 0, 0.12);
  border-left: 0.35em solid transparent;
  border-right: 0.35em solid transparent;
}

.mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__input,
.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {
  color: rgba(0, 0, 0, 0.12);
  background-color: rgba(255, 255, 255, 0.2);
  border-color: rgba(0, 0, 0, 0.12);
}

.mdlext-bordered-fields .mdl-textfield.is-dirty .mdl-textfield__label,
.mdlext-bordered-fields .mdl-textfield.is-dirty .mdlext-selectfield__label,
.mdlext-bordered-fields .mdl-textfield.has-placeholder .mdl-textfield__label,
.mdlext-bordered-fields .mdl-textfield.has-placeholder .mdlext-selectfield__label,
.mdlext-bordered-fields .mdlext-selectfield.is-dirty .mdl-textfield__label,
.mdlext-bordered-fields .mdlext-selectfield.is-dirty .mdlext-selectfield__label,
.mdlext-bordered-fields .mdlext-selectfield.has-placeholder .mdl-textfield__label,
.mdlext-bordered-fields .mdlext-selectfield.has-placeholder .mdlext-selectfield__label {
  visibility: hidden;
}

.mdlext-bordered-fields .mdl-textfield .mdl-textfield__label,
.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label,
.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label,
.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label {
  color: rgba(0, 0, 0, 0.26);
  font-size: 16px;
  font-weight: normal;
  padding-left: 8px;
  top: auto;
  bottom: 4px;
}

.mdlext-bordered-fields .mdl-textfield .mdl-textfield__label::after,
.mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label::after,
.mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label::after,
.mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label::after {
  background-color: transparent !important;
  visibility: hidden !important;
}

.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
  color: #3f51b5;
  font-size: 12px;
  font-weight: normal;
  top: auto;
  bottom: 24px;
  visibility: visible;
}

.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label {
  color: rgba(0, 0, 0, 0.12);
}

.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
.mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
.mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label {
  color: #d50000;
}

.mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__label,
.mdlext-bordered-fields fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {
  color: rgba(0, 0, 0, 0.12);
}

.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i,
.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button,
.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > i,
.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > .mdl-button,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > i,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > .mdl-button {
  position: absolute;
  bottom: 2px;
}

.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i,
.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > i,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > i {
  bottom: 6px;
}

.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i:first-child,
.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button:first-child,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i:first-child,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button:first-child {
  left: 4px;
}

.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i ~ .mdl-textfield__input,
.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdl-textfield__input,
.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i ~ .mdlext-selectfield__select,
.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdlext-selectfield__select,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i ~ .mdl-textfield__input,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdl-textfield__input,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i ~ .mdlext-selectfield__select,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdlext-selectfield__select {
  padding-left: 32px;
}

.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i ~ .mdl-textfield__label,
.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdl-textfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i ~ .mdl-textfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdl-textfield__label {
  left: 24px;
}

.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > i ~ .mdlext-selectfield__label,
.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdlext-selectfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > i ~ .mdlext-selectfield__label,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-left > .mdl-button ~ .mdlext-selectfield__label {
  left: 24px;
}

.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > .mdl-textfield__input,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > .mdl-textfield__input {
  padding-right: 32px;
}

.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > i:last-child,
.mdlext-bordered-fields .mdl-textfield.mdlext-bordered-fields__icon-right > .mdl-button:last-child,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > i:last-child,
.mdlext-bordered-fields .mdlext-selectfield.mdlext-bordered-fields__icon-right > .mdl-button:last-child {
  left: auto;
  right: 4px;
}

.mdlext-bordered-fields .mdl-textfield.is-disabled i,
.mdlext-bordered-fields .mdl-textfield.is-disabled .mdl-button,
.mdlext-bordered-fields .mdlext-selectfield.is-disabled i,
.mdlext-bordered-fields .mdlext-selectfield.is-disabled .mdl-button {
  color: rgba(0, 0, 0, 0.12);
  pointer-events: none;
}

.mdlext-bordered-fields fieldset[disabled] .mdl-textfield i,
.mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-button,
.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield i,
.mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdl-button {
  color: rgba(0, 0, 0, 0.12);
  pointer-events: none;
}

/**
 * @license
 * Copyright 2016-2017 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * This code is built with Google Material Design Lite,
 * which is Licensed under the Apache License, Version 2.0
 */

.mdlext-collapsible {
  box-sizing: border-box;
  cursor: pointer;
}

.mdlext-collapsible-group,
.mdlext-collapsible-region {
  box-sizing: border-box;
}

.mdlext-collapsible-group[hidden],
.mdlext-collapsible-region[hidden] {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
  pointer-events: none;
}

/**
 * @license
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * This code is built with Google Material Design Lite,
 * which is Licensed under the Apache License, Version 2.0
 */

.mdlext-aria-toggle-plus-minus {
  font-family: inherit;
  font-weight: inherit;
  font-style: inherit;
  font-size: 1.4em;
  display: inline-block;
  width: 1em;
  height: 1em;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  vertical-align: middle;
  -webkit-font-smoothing: antialiased;
  -webkit-font-feature-settings: 'liga';
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
}

.mdlext-aria-toggle-plus-minus::after {
  content: "+";
  margin-left: 0;
}

[aria-expanded='true'] > .mdlext-aria-toggle-plus-minus::after {
  content: "-";
  margin-left: 0;
}

.mdlext-aria-toggle-material-icons {
  font-family: "Material Icons";
  font-weight: inherit;
  font-style: inherit;
  font-size: 1.3em;
  display: inline-block;
  width: 1em;
  height: 1em;
  line-height: 1;
  text-transform: none;
  letter-spacing: normal;
  word-wrap: normal;
  white-space: nowrap;
  direction: ltr;
  vertical-align: middle;
  -webkit-font-smoothing: antialiased;
  -webkit-font-feature-settings: 'liga';
  text-rendering: optimizeLegibility;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: 'liga';
}

.mdlext-aria-toggle-material-icons::after {
  content: "expand_more";
  margin-left: -8px;
}

[aria-expanded='true'] > .mdlext-aria-toggle-material-icons::after {
  content: "expand_less";
  margin-left: -8px;
}

.mdlext-accordion {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  list-style: none;
  display: -ms-flexbox;
  display: flex;
}

.mdlext-accordion * {
  box-sizing: border-box;
}

.mdlext-accordion__panel {
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}

.mdlext-accordion__tab {
  font-family: "Roboto", "Helvetica", "Arial", sans-serif;
  font-size: 20px;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
  font-weight: 400;
  line-height: 1.1;
  box-sizing: border-box;
  position: relative;
  margin: 0;
  padding: 0;
  min-width: 56px;
  min-height: 56px;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
      align-items: center;
  -ms-flex-item-align: stretch;
      align-self: stretch;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  color: #000000;
  background-color: rgba(158, 158, 158, 0.2);
  cursor: pointer;
  overflow: hidden;
}

.mdlext-accordion__tab:focus {
  outline-offset: -2px;
  outline-color: invert;
  outline-width: 2px;
}

.mdlext-accordion__tab[aria-expanded='true'] {
  background-color: rgba(158, 158, 158, 0.3);
}

.mdlext-accordion__tab[aria-selected='true'] {
  background-color: rgba(158, 158, 158, 0.4);
}

.mdlext-accordion__tab[disabled] {
  background-color: rgba(158, 158, 158, 0.12);
  color: rgba(0, 0, 0, 0.26);
  pointer-events: none;
}

.mdlext-accordion__tab[disabled] > * {
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-accordion__tab:hover:not([disabled]) {
  background-color: rgba(158, 158, 158, 0.4);
}

.mdlext-accordion__tab > * {
  margin: 0;
  padding: 0;
}

.mdlext-accordion__tab__caption {
  padding-left: 8px;
  padding-right: 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mdlext-accordion__tab > *:first-child {
  padding-left: 0;
}

.mdlext-accordion__tab--ripple[aria-selected='true']::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  background: rgba(255, 255, 255, 0.5);
  opacity: 0;
  border-radius: 100%;
  transform: scale(1, 1) translate(-50%);
  transform-origin: 50% 50%;
}

.mdlext-accordion__tab--ripple[aria-selected='true']:focus:not(:active)::before {
  animation: mdlext-accordion-tab-ripple 1s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
}

.mdlext-accordion__tabpanel {
  box-sizing: border-box;
  margin: 0;
  padding: 0 8px;
  color: inherit;
  background-color: transparent;
  display: block;
  overflow: auto;
  -ms-flex-positive: 1;
      flex-grow: 1;
}

.mdlext-accordion__tabpanel[hidden] {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.mdlext-accordion--vertical {
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
}

.mdlext-accordion--vertical .mdlext-accordion__panel {
  min-height: 56px;
  -ms-flex-direction: column;
      flex-direction: column;
}

.mdlext-accordion--vertical .mdlext-accordion__tab {
  height: 56px;
  border-top: 1px solid rgba(158, 158, 158, 0.5);
  padding-left: 8px;
  padding-right: 8px;
}

.mdlext-accordion--vertical .mdlext-accordion__tab[aria-selected='true']::after {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 1px;
  width: 100%;
  display: block;
  content: " ";
  background-color: rgba(150, 150, 150, 0.5);
  animation: border-expand 0.2s cubic-bezier(0.4, 0, 0.4, 1) 0.01s alternate forwards;
  transition: all 1s cubic-bezier(0.4, 0, 1, 1);
}

.mdlext-accordion--vertical .mdlext-accordion__tab > * {
  padding-left: 8px;
}

.mdlext-accordion--vertical .mdlext-accordion__tab > *:first-child {
  padding-left: 0;
}

.mdlext-accordion--vertical .mdlext-accordion__tab > *:last-child:not(:only-child):not(.mdlext-accordion__tab__caption) {
  margin-left: auto;
}

.mdlext-accordion--vertical .mdlext-accordion__tab--ripple[aria-selected='true']::before {
  width: 5%;
  height: 10%;
}

.mdlext-accordion--vertical .mdlext-accordion__tabpanel {
  border-top: 1px solid rgba(158, 158, 158, 0.5);
}

.mdlext-accordion--vertical .mdlext-accordion__tabpanel--animation {
  transform: scaleY(1);
  animation: mdlext-accordion-show-tabpanel-y 0.2s ease-in-out;
}

.mdlext-accordion--vertical .mdlext-accordion__tabpanel--animation[hidden] {
  transform: scaleY(0);
  animation: mdlext-accordion-hide-tabpanel-y 0.2s ease-out;
  animation-delay: 0.1s;
}

.mdlext-accordion--horizontal .mdlext-accordion__panel {
  min-width: 56px;
  width: 56px;
}

.mdlext-accordion--horizontal[aria-multiselectable='true'] .mdlext-accordion__panel.is-expanded {
  width: 100%;
}

.mdlext-accordion--horizontal .mdlext-accordion__tab {
  -ms-flex-direction: column-reverse;
      flex-direction: column-reverse;
  width: 56px;
  white-space: nowrap;
  border-left: 1px solid rgba(158, 158, 158, 0.5);
}

.mdlext-accordion--horizontal .mdlext-accordion__tab[aria-selected='true']::after {
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  width: 1px;
  display: block;
  content: " ";
  background-color: rgba(150, 150, 150, 0.5);
}

.mdlext-accordion--horizontal .mdlext-accordion__tab > * {
  transform: rotate(-90deg) translateX(8px);
}

.mdlext-accordion--horizontal .mdlext-accordion__tab > *:last-child:not(:only-child):not(.mdlext-accordion__tab__caption) {
  margin-bottom: auto;
  transform: rotate(-90deg) translateX(0);
}

.mdlext-accordion--horizontal .mdlext-accordion__tab__caption {
  transform: rotate(-90deg) translateX(50%);
  padding-right: 16px;
}

.mdlext-accordion--horizontal .mdlext-accordion__tab--ripple[aria-selected='true']::before {
  width: 10%;
  height: 5%;
}

.mdlext-accordion--horizontal .mdlext-accordion__tabpanel {
  border-left: 1px solid rgba(158, 158, 158, 0.5);
}

.mdlext-accordion--horizontal .mdlext-accordion__tabpanel--animation {
  transform: scaleX(1);
  animation: mdlext-accordion-show-tabpanel-x 0.2s ease-in-out;
}

.mdlext-accordion--horizontal .mdlext-accordion__tabpanel--animation[hidden] {
  transform: scaleX(0);
  animation: mdlext-accordion-hide-tabpanel-x 0.2s ease-out;
}

.mdlext-accordion__panel:first-child > .mdlext-accordion__tab {
  border-top-color: transparent;
  border-left-color: transparent;
}

.mdlext-accordion[aria-multiselectable="false"] .mdlext-accordion__panel.is-expanded {
  -ms-flex-positive: 1;
      flex-grow: 1;
}

.mdlext-accordion[disabled] * {
  pointer-events: none;
}

.mdlext-accordion[disabled] .mdlext-accordion__tab {
  background-color: rgba(158, 158, 158, 0.12);
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-accordion[disabled] .mdlext-accordion__tab > * {
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-accordion[disabled] .mdlext-accordion__tabpanel {
  opacity: 0.8;
  filter: blur(1px) grayscale(80%);
}

@keyframes mdlext-accordion-tab-ripple {
  0% {
    transform: scale(0, 0);
    opacity: 1;
  }

  20% {
    transform: scale(25, 25);
    opacity: 1;
  }

  100% {
    opacity: 0;
    transform: scale(40, 40);
  }
}

/*
@keyframes mdlext-accordion-show-tabpanel-y {
  0% { transform: scaleY(0.1); }
  40% { transform: scaleY(1.03); }
  60% { transform: scaleY(0.98); }
  80% { transform: scaleY(1.03); }
  100% { transform: scaleY(0.98); }
  80% { transform: scaleY(1.01); }
  100% { transform: scaleY(1); }
}
*/

@keyframes mdlext-accordion-show-tabpanel-y {
  0% {
    transform: scaleY(0);
  }

  60% {
    transform: scaleY(1.01);
  }

  80% {
    transform: scaleY(0.98);
  }

  100% {
    transform: scaleY(1);
  }
}

@keyframes mdlext-accordion-hide-tabpanel-y {
  0% {
    transform: scaleY(1);
  }

  60% {
    transform: scaleY(0.98);
  }

  80% {
    transform: scaleY(1.01);
  }

  100% {
    transform: scaleY(0);
  }
}

/*
@keyframes mdlext-accordion-show-tabpanel-x {
  0% { transform: scaleX(0.1); }
  40% { transform: scaleX(1.03); }
  60% { transform: scaleX(0.98); }
  80% { transform: scaleX(1.03); }
  100% { transform: scaleX(0.98); }
  80% { transform: scaleX(1.01); }
  100% { transform: scaleX(1); }
}
*/

@keyframes mdlext-accordion-show-tabpanel-x {
  0% {
    transform: scaleX(0);
  }

  60% {
    transform: scaleX(1.01);
  }

  80% {
    transform: scaleX(0.98);
  }

  100% {
    transform: scaleX(1);
  }
}

@keyframes mdlext-accordion-hide-tabpanel-x {
  0% {
    transform: scaleX(1);
  }

  60% {
    transform: scaleX(0.98);
  }

  80% {
    transform: scaleX(1.01);
  }

  100% {
    transform: scaleX(0);
  }
}

/* -------------------------------------------------------------
   Palette samples. Not part of build
----------------------------------------------------------------

$mdlext-light-color-primary:          #9E9E9E !default;
$mdlext-light-color-primary-dark:     #616161 !default;
$mdlext-light-color-primary-light:    #9E9E9E !default;  // Fallback color. Set to color-primary if fallback is not needed
$mdlext-light-color-primary-contrast: #212121 !default;  // text color on primary/primary dark background
$mdlext-light-color-accent:           #E040FB !default;
$mdlext-light-color-accent-light:     #E040FB !default;  // Fallback color. Set to color-accent if fallback is not needed
$mdlext-light-color-accent-contrast:  #FAFAFA !default;

$mdlext-light-color-primary:          #F5F5F5 !default;
$mdlext-light-color-primary-dark:     #E0E0E0 !default;
$mdlext-light-color-primary-light:    #8BC34A !default;  // Fallback color. Set to color-primary if fallback is not needed
$mdlext-light-color-primary-contrast: #000000 !default;  // text color on primary/primary dark background
$mdlext-light-color-accent:           #FFC107 !default;
$mdlext-light-color-accent-light:     #FFC107 !default;  // Fallback color. Set to color-accent if fallback is not needed
$mdlext-light-color-accent-contrast:  #FFFFFF !default;


$mdlext-light-color-primary:          #673AB7 !default;
$mdlext-light-color-primary-dark:     #512DA8 !default;
$mdlext-light-color-primary-light:    #673AB7 !default;   // Fallback color. Set to color-primary if fallback is not needed
$mdlext-light-color-primary-contrast: #D1C4E9 !default;   // text color on primary/primary dark background
$mdlext-light-color-accent:           #4CAF50 !default;
$mdlext-light-color-accent-light:     #4CAF50 !default;   // Fallback color. Set to color-accent if fallback is not needed
$mdlext-light-color-accent-contrast:  #FFFFFF !default;


$mdlext-light-color-primary:          #4CAF50 !default;
$mdlext-light-color-primary-dark:     #388E3C !default;
$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed
$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background
$mdlext-light-color-accent:           #FF5252 !default;
$mdlext-light-color-accent-light:     #FF5252 !default;  // Fallback color. Set to color-accent if fallback is not needed
$mdlext-light-color-accent-contrast:  #FFFFFF !default;


$mdlext-light-color-primary:          #4CAF50 !default;
$mdlext-light-color-primary-dark:     #388E3C !default;
$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed
$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background
$mdlext-light-color-accent:           #03A9F4 !default;
$mdlext-light-color-accent-light:     #03A9F4 !default;  // Fallback color. Set to color-accent if fallback is not needed
$mdlext-light-color-accent-contrast:  #FFFFFF !default;


$mdlext-dark-color-primary:           #212121 !default;
$mdlext-dark-color-primary-dark:      #000000 !default;
$mdlext-dark-color-primary-light:     #607D8B !default;  // Fallback color. Set to color-primary if fallback is not needed
$mdlext-dark-color-primary-contrast:  #FFFFFF !default;  // text color on primary/primary dark background
$mdlext-dark-color-accent:            #FF5722 !default;
$mdlext-dark-color-accent-light:      #FF5722 !default;  // Fallback color. Set to color-accent if fallback is not needed
$mdlext-dark-color-accent-contrast:   #FFFFFF !default;

*/

.mdlext-light-color-theme {
  background-color: #FAFAFA;
  color: rgba(0, 0, 0, 0.87);
}

.mdlext-light-color-theme a {
  outline-color: inherit;
}

.mdlext-light-color-theme .mdl-color--primary {
  background-color: #4CAF50 !important;
}

.mdlext-light-color-theme .mdl-color--primary-contrast {
  background-color: #C8E6C9 !important;
}

.mdlext-light-color-theme .mdl-color--primary-dark {
  background-color: #388E3C !important;
}

.mdlext-light-color-theme .mdl-color--accent {
  background-color: #E040FB !important;
}

.mdlext-light-color-theme .mdl-color--accent-contrast {
  background-color: #FAFAFA !important;
}

.mdlext-light-color-theme .mdl-color-text--primary {
  color: #4CAF50 !important;
}

.mdlext-light-color-theme .mdl-color-text--primary-contrast {
  color: #C8E6C9 !important;
}

.mdlext-light-color-theme .mdl-color-text--primary-dark {
  color: #388E3C !important;
}

.mdlext-light-color-theme .mdl-color-text--accent {
  color: #E040FB !important;
}

.mdlext-light-color-theme .mdl-color-text--accent-contrast {
  color: #FAFAFA !important;
}

.mdlext-light-color-theme a {
  color: #E040FB;
}

.mdlext-light-color-theme .mdl-badge[data-badge]::after {
  background: #E040FB;
  color: #FAFAFA;
}

.mdlext-light-color-theme .mdl-badge.mdl-badge--no-background[data-badge]::after {
  color: #E040FB;
  background: #FAFAFA;
}

.mdlext-light-color-theme .mdl-button {
  background: transparent;
  color: #000000;
}

.mdlext-light-color-theme .mdl-button:hover {
  background-color: rgba(158, 158, 158, 0.2);
}

.mdlext-light-color-theme .mdl-button:focus:not(:active) {
  background-color: rgba(0, 0, 0, 0.12);
}

.mdlext-light-color-theme .mdl-button:active {
  background-color: rgba(158, 158, 158, 0.4);
}

.mdlext-light-color-theme .mdl-button.mdl-button--colored {
  color: #4CAF50;
}

.mdlext-light-color-theme .mdl-button.mdl-button--colored:focus:not(:active) {
  background-color: rgba(0, 0, 0, 0.12);
}

.mdlext-light-color-theme .mdl-button--raised {
  background: rgba(158, 158, 158, 0.2);
}

.mdlext-light-color-theme .mdl-button--raised:active {
  background-color: rgba(158, 158, 158, 0.4);
}

.mdlext-light-color-theme .mdl-button--raised:focus:not(:active) {
  background-color: rgba(158, 158, 158, 0.4);
}

.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored {
  background: #4CAF50;
  color: #C8E6C9;
}

.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored:hover {
  background-color: #3d8b40;
}

.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored:active {
  background-color: #3d8b40;
}

.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored:focus:not(:active) {
  background-color: #3d8b40;
}

.mdlext-light-color-theme .mdl-button--raised.mdl-button--colored .mdl-ripple {
  background: #C8E6C9;
}

.mdlext-light-color-theme .mdl-button--fab {
  background: rgba(158, 158, 158, 0.2);
}

.mdlext-light-color-theme .mdl-button--fab:active {
  background-color: rgba(158, 158, 158, 0.4);
}

.mdlext-light-color-theme .mdl-button--fab:focus:not(:active) {
  background-color: rgba(158, 158, 158, 0.4);
}

.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored {
  background: #E040FB;
  color: #FAFAFA;
}

.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored:hover {
  background-color: #E040FB;
}

.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored:focus:not(:active) {
  background-color: #E040FB;
}

.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored:active {
  background-color: #E040FB;
}

.mdlext-light-color-theme .mdl-button--fab.mdl-button--colored .mdl-ripple {
  background: #FAFAFA;
}

.mdlext-light-color-theme .mdl-button--icon {
  color: inherit;
}

.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary {
  color: #4CAF50;
}

.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary .mdl-ripple {
  background: #C8E6C9;
}

.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--raised,
.mdlext-light-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--fab {
  color: #C8E6C9;
  background-color: #4CAF50;
}

.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent {
  color: #E040FB;
}

.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent .mdl-ripple {
  background: #FAFAFA;
}

.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--raised,
.mdlext-light-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--fab {
  color: #FAFAFA;
  background-color: #E040FB;
}

.mdlext-light-color-theme .mdl-button[disabled][disabled],
.mdlext-light-color-theme .mdl-button.mdl-button--disabled.mdl-button--disabled {
  color: rgba(0, 0, 0, 0.26);
  background-color: transparent;
}

.mdlext-light-color-theme .mdl-button--fab[disabled][disabled],
.mdlext-light-color-theme .mdl-button--fab.mdl-button--disabled.mdl-button--disabled {
  background-color: rgba(0, 0, 0, 0.12);
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-button--raised[disabled][disabled],
.mdlext-light-color-theme .mdl-button--raised.mdl-button--disabled.mdl-button--disabled {
  background-color: rgba(0, 0, 0, 0.12);
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-button--colored[disabled][disabled],
.mdlext-light-color-theme .mdl-button--colored.mdl-button--disabled.mdl-button--disabled {
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded {
  background: transparent;
  color: #E040FB;
  /* stylelint-disable */
  /* stylelint-enable */
  /**************************** Thumbs ****************************/
  /* stylelint-disable */
  /* stylelint-enable */
  /**************************** 0-value ****************************/
  /* stylelint-disable */
  /* stylelint-enable */
  /**************************** Disabled ****************************/
  /* stylelint-disable */
  /* stylelint-enable */
}

.mdlext-light-color-theme .mdl-slider.is-upgraded::-webkit-slider-runnable-track {
  background: transparent;
}

.mdlext-light-color-theme .mdl-slider.is-upgraded::-moz-range-track {
  background: transparent;
}

.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-track {
  background: none;
  color: transparent;
}

.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-fill-lower {
  background: linear-gradient(to right, transparent, transparent 16px, #E040FB 16px, #E040FB 0);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-fill-upper {
  background: linear-gradient(to left, transparent, transparent 16px, rgba(0, 0, 0, 0.26) 16px, rgba(0, 0, 0, 0.26) 0);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded::-webkit-slider-thumb {
  background: #E040FB;
}

.mdlext-light-color-theme .mdl-slider.is-upgraded::-moz-range-thumb {
  background: #E040FB;
}

.mdlext-light-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb {
  box-shadow: 0 0 0 10px rgba(224, 64, 251, 0.26);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb {
  box-shadow: 0 0 0 10px rgba(224, 64, 251, 0.26);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded:active::-webkit-slider-thumb {
  background: #E040FB;
}

.mdlext-light-color-theme .mdl-slider.is-upgraded:active::-moz-range-thumb {
  background: #E040FB;
}

.mdlext-light-color-theme .mdl-slider.is-upgraded::-ms-thumb {
  background: #E040FB;
}

.mdlext-light-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb {
  background: radial-gradient(circle closest-side, #E040FB 0%, #E040FB 37.5%, rgba(224, 64, 251, 0.26) 37.5%, rgba(224, 64, 251, 0.26) 100%);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded:active::-ms-thumb {
  background: #E040FB;
}

.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb {
  border-color: #E040FB;
  background: transparent;
}

.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb {
  border-color: rgba(0, 0, 0, 0.26);
  background: transparent;
}

.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {
  box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.12);
  background: rgba(0, 0, 0, 0.12);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb {
  box-shadow: 0 0 0 10px rgba(0, 0, 0, 0.12);
  background: rgba(0, 0, 0, 0.12);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb {
  border-color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb {
  border-color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-thumb {
  background: radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(0, 0, 0, 0.26) 66.67%, rgba(0, 0, 0, 0.26) 100%);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb {
  background: radial-gradient(circle closest-side, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.12) 25%, rgba(0, 0, 0, 0.26) 25%, rgba(0, 0, 0, 0.26) 37.5%, rgba(0, 0, 0, 0.12) 37.5%, rgba(0, 0, 0, 0.12) 100%);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb {
  background: radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(0, 0, 0, 0.26) 77.78%, rgba(0, 0, 0, 0.26) 100%);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower {
  background: transparent;
}

.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb,
.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb,
.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb {
  background: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb,
.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb,
.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-moz-range-thumb {
  background: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {
  background-color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb,
.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb,
.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb {
  border-color: rgba(0, 0, 0, 0.26);
  background: transparent;
}

.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb,
.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb,
.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb {
  border-color: rgba(0, 0, 0, 0.26);
  background: transparent;
}

.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:focus::-ms-thumb,
.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled:active::-ms-thumb,
.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-ms-thumb {
  background: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb,
.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb,
.mdlext-light-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb {
  background: radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(0, 0, 0, 0.26) 50%, rgba(0, 0, 0, 0.26) 100%);
}

.mdlext-light-color-theme .mdl-slider.is-upgraded:disabled::-ms-fill-lower {
  background: linear-gradient(to right, transparent, transparent 25px, rgba(0, 0, 0, 0.26) 25px, rgba(0, 0, 0, 0.26) 0);
}

.mdlext-light-color-theme .mdl-slider__background-flex {
  background: transparent;
}

.mdlext-light-color-theme .mdl-slider__background-lower {
  background: #E040FB;
}

.mdlext-light-color-theme .mdl-slider__background-upper {
  background: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-textfield__input {
  border-bottom-color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-textfield.is-invalid .mdl-textfield__input {
  border-color: #D32F2F;
}

.mdlext-light-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__input,
.mdlext-light-color-theme .mdl-textfield.is-disabled .mdl-textfield__input {
  background-color: transparent;
  border-bottom-color: rgba(0, 0, 0, 0.12);
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-textfield__label {
  color: rgba(0, 0, 0, 0.54);
}

.mdlext-light-color-theme .mdl-textfield__label::after {
  background-color: #E040FB;
}

.mdlext-light-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__label,
.mdlext-light-color-theme .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-textfield--floating-label.is-focused .mdl-textfield__label,
.mdlext-light-color-theme .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,
.mdlext-light-color-theme .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {
  color: #E040FB;
}

.mdlext-light-color-theme .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {
  color: #D32F2F;
}

.mdlext-light-color-theme .mdl-textfield.is-invalid .mdl-textfield__label::after {
  background-color: #D32F2F;
}

.mdlext-light-color-theme .mdl-textfield__error {
  color: #D32F2F;
}

.mdlext-light-color-theme .mdl-checkbox__box-outline {
  border-color: rgba(0, 0, 0, 0.54);
}

.mdlext-light-color-theme .mdl-checkbox.is-checked .mdl-checkbox__box-outline {
  border-color: #E040FB;
}

.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,
.mdlext-light-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {
  border-color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-checkbox__focus-helper {
  background-color: transparent;
}

.mdlext-light-color-theme .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {
  box-shadow: 0 0 0 8px rgba(224, 64, 251, 0.26);
  background-color: rgba(224, 64, 251, 0.26);
}

.mdlext-light-color-theme .mdl-checkbox__tick-outline {
  background: transparent;
}

.mdlext-light-color-theme .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {
  background-color: #E040FB;
}

.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,
.mdlext-light-color-theme .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {
  background-color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,
.mdlext-light-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__label {
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-checkbox__ripple-container .mdl-ripple {
  background: #E040FB;
}

.mdlext-light-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,
.mdlext-light-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {
  background: transparent;
}

.mdlext-light-color-theme .mdl-radio__outer-circle {
  border-color: rgba(0, 0, 0, 0.54);
}

.mdlext-light-color-theme .mdl-radio.is-checked .mdl-radio__outer-circle {
  border-color: #E040FB;
}

.mdlext-light-color-theme .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,
.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__outer-circle {
  border-color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-radio__inner-circle {
  background: #E040FB;
}

.mdlext-light-color-theme fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,
.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__inner-circle {
  background: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme fieldset[disabled] .mdl-radio .mdl-radio__label,
.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__label {
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-radio__ripple-container .mdl-ripple {
  background: #E040FB;
}

.mdlext-light-color-theme fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,
.mdlext-light-color-theme .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {
  background: transparent;
}

.mdlext-light-color-theme .mdl-icon-toggle__label {
  color: #616161;
}

.mdlext-light-color-theme .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {
  color: #E040FB;
}

.mdlext-light-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {
  background-color: rgba(0, 0, 0, 0.12);
}

.mdlext-light-color-theme .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {
  background-color: rgba(224, 64, 251, 0.26);
}

.mdlext-light-color-theme .mdl-icon-toggle__ripple-container .mdl-ripple {
  background: #616161;
}

.mdlext-light-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {
  background: transparent;
}

.mdlext-light-color-theme .mdl-switch__track {
  background: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-switch.is-checked .mdl-switch__track {
  background: rgba(224, 64, 251, 0.54);
}

.mdlext-light-color-theme .mdl-switch__track fieldset[disabled] .mdl-switch,
.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__track {
  background: rgba(0, 0, 0, 0.12);
}

.mdlext-light-color-theme .mdl-switch__thumb {
  background: #FAFAFA;
}

.mdlext-light-color-theme .mdl-switch.is-checked .mdl-switch__thumb {
  background: #E040FB;
}

.mdlext-light-color-theme .mdl-switch__thumb fieldset[disabled] .mdl-switch,
.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__thumb {
  background: #BDBDBD;
}

.mdlext-light-color-theme .mdl-switch__focus-helper {
  background-color: transparent;
}

.mdlext-light-color-theme .mdl-switch.is-focused .mdl-switch__focus-helper {
  background-color: rgba(0, 0, 0, 0.1);
}

.mdlext-light-color-theme .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {
  box-shadow: 0 0 0 20px rgba(224, 64, 251, 0.26);
  background-color: rgba(224, 64, 251, 0.26);
}

.mdlext-light-color-theme .mdl-switch__label fieldset[disabled] .mdl-switch,
.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__label {
  color: #BDBDBD;
}

.mdlext-light-color-theme .mdl-switch__ripple-container .mdl-ripple {
  background: #E040FB;
}

.mdlext-light-color-theme fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,
.mdlext-light-color-theme .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {
  background: transparent;
}

.mdlext-light-color-theme .mdl-data-table {
  border-color: rgba(0, 0, 0, 0.12);
  background-color: #FAFAFA;
}

.mdlext-light-color-theme .mdl-data-table tbody tr.is-selected {
  background-color: #EEEEEE;
}

.mdlext-light-color-theme .mdl-data-table tbody tr:hover {
  background-color: #EEEEEE;
}

.mdlext-light-color-theme .mdl-data-table th {
  color: rgba(0, 0, 0, 0.54);
}

.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending,
.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending {
  color: rgba(0, 0, 0, 0.87);
}

.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover::before,
.mdlext-light-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending:hover::before {
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdl-menu__outline {
  background: #FFFFFF;
}

.mdlext-light-color-theme .mdl-menu__item {
  color: rgba(0, 0, 0, 0.87);
  background-color: transparent;
  outline-color: #BDBDBD;
}

.mdlext-light-color-theme .mdl-menu__item--full-bleed-divider {
  border-bottom-color: rgba(0, 0, 0, 0.12);
}

.mdlext-light-color-theme .mdl-menu__item[disabled],
.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled] {
  color: #BDBDBD;
  background-color: transparent;
}

.mdlext-light-color-theme .mdl-menu__item[disabled]:hover,
.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled]:hover {
  background-color: transparent;
}

.mdlext-light-color-theme .mdl-menu__item[disabled]:focus,
.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled]:focus {
  background-color: transparent;
}

.mdlext-light-color-theme .mdl-menu__item[disabled] .mdl-ripple,
.mdlext-light-color-theme .mdl-menu__item[data-mdl-disabled] .mdl-ripple {
  background: transparent;
}

.mdlext-light-color-theme .mdl-menu__item:hover {
  background-color: #EEEEEE;
}

.mdlext-light-color-theme .mdl-menu__item:focus {
  background-color: #EEEEEE;
}

.mdlext-light-color-theme .mdl-menu__item:active {
  background-color: #E0E0E0;
}

.mdlext-light-color-theme .mdl-card {
  background: #FAFAFA;
}

.mdlext-light-color-theme .mdl-card__media {
  background-color: #E040FB;
}

.mdlext-light-color-theme .mdl-card__title {
  color: rgba(0, 0, 0, 0.87);
}

.mdlext-light-color-theme .mdl-card__title.mdl-card--border {
  border-bottom-color: rgba(0, 0, 0, 0.1);
}

.mdlext-light-color-theme .mdl-card__title-text {
  color: inherit;
}

.mdlext-light-color-theme .mdl-card__subtitle-text {
  color: rgba(0, 0, 0, 0.54);
}

.mdlext-light-color-theme .mdl-card__supporting-text {
  color: rgba(0, 0, 0, 0.54);
}

.mdlext-light-color-theme .mdl-card__actions {
  background-color: transparent;
}

.mdlext-light-color-theme .mdl-card__actions.mdl-card--border {
  border-top-color: rgba(0, 0, 0, 0.1);
}

.mdlext-light-color-theme .mdlext-selectfield.is-disabled::after {
  color: rgba(0, 0, 0, 0.12);
  content: '';
  width: 0;
  height: 0;
  font-size: inherit;
  line-height: inherit;
  border-top: 0.5em solid rgba(0, 0, 0, 0.12);
  border-top-width: 0.5em;
  border-top-style: solid;
  border-top-color: rgba(0, 0, 0, 0.12);
  border-left: 0.35em solid transparent;
  border-right: 0.35em solid transparent;
}

.mdlext-light-color-theme .mdlext-selectfield__select {
  border-bottom-color: rgba(0, 0, 0, 0.26);
  color: inherit;
}

.mdlext-light-color-theme .mdlext-selectfield__select option {
  background-color: #FAFAFA;
  color: rgba(0, 0, 0, 0.87);
}

.mdlext-light-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
  border-color: #D32F2F;
}

.mdlext-light-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,
.mdlext-light-color-theme .mdlext-selectfield.is-disabled .mdlext-selectfield__select {
  background-color: transparent;
  border-bottom-color: rgba(0, 0, 0, 0.12);
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdlext-selectfield__label {
  color: rgba(0, 0, 0, 0.54);
}

.mdlext-light-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
  color: #E040FB;
}

.mdlext-light-color-theme .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {
  color: #D32F2F;
}

.mdlext-light-color-theme .mdlext-selectfield__label::after {
  background-color: #E040FB;
}

.mdlext-light-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {
  background-color: #D32F2F;
}

.mdlext-light-color-theme .mdlext-selectfield__error {
  color: #D32F2F;
}

.mdlext-menu.mdlext-light-color-theme {
  background: #FFFFFF;
}

.mdlext-light-color-theme .mdlext-menu {
  background: #FFFFFF;
}

.mdlext-light-color-theme .mdlext-menu__item {
  color: rgba(0, 0, 0, 0.87);
  background-color: #FFFFFF;
}

.mdlext-light-color-theme .mdlext-menu__item:active,
.mdlext-light-color-theme .mdlext-menu__item[aria-selected='true'] {
  background-color: #E0E0E0;
}

.mdlext-light-color-theme .mdlext-menu__item:hover:not([disabled]) {
  background-color: #EEEEEE;
}

.mdlext-light-color-theme .mdlext-menu__item:focus {
  outline-color: #BDBDBD;
  background-color: #EEEEEE;
}

.mdlext-light-color-theme .mdlext-menu__item[disabled] {
  color: #BDBDBD;
}

.mdlext-light-color-theme .mdlext-menu__item[disabled] > * {
  color: #BDBDBD;
}

.mdlext-light-color-theme .mdlext-menu__item-separator {
  border-bottom: 1px solid rgba(0, 0, 0, 0.12);
}

.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select {
  background-color: rgba(250, 250, 250, 0.1);
  border-color: rgba(0, 0, 0, 0.26);
  color: inherit;
}

.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:disabled,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:disabled,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:disabled,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:disabled {
  color: rgba(0, 0, 0, 0.26);
  background-color: rgba(250, 250, 250, 0.1);
  border-color: rgba(0, 0, 0, 0.12);
}

.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:focus,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:focus,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:focus,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:focus {
  background-color: rgba(225, 225, 225, 0.1);
  border-color: #E040FB;
}

.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
  color: inherit;
  border-color: #D32F2F;
  background-color: rgba(255, 255, 255, 0.5);
}

.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input:focus,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select:focus,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input:focus,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select:focus {
  border-color: #ab2424;
  background-color: rgba(255, 255, 255, 0.5);
}

.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield::after,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled::after {
  color: rgba(0, 0, 0, 0.26);
  content: '';
  width: 0;
  height: 0;
  font-size: inherit;
  line-height: inherit;
  border-top: 0.5em solid rgba(0, 0, 0, 0.26);
  border-top-width: 0.5em;
  border-top-style: solid;
  border-top-color: rgba(0, 0, 0, 0.26);
  border-left: 0.35em solid transparent;
  border-right: 0.35em solid transparent;
}

.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__input,
.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {
  color: rgba(0, 0, 0, 0.26);
  background-color: rgba(250, 250, 250, 0.1);
  border-color: rgba(0, 0, 0, 0.12);
}

.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label {
  color: rgba(0, 0, 0, 0.54);
}

.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
  color: #E040FB;
}

.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label {
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label {
  color: #D32F2F;
}

.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__label,
.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled i,
.mdlext-light-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled .mdl-button,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled i,
.mdlext-light-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled .mdl-button {
  color: rgba(0, 0, 0, 0.12);
}

.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield i,
.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-button,
.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield i,
.mdlext-light-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdl-button {
  color: rgba(0, 0, 0, 0.12);
}

.mdlext-light-color-theme .mdlext-accordion__tab {
  color: #000000;
  background-color: rgba(117, 117, 117, 0.2);
}

.mdlext-light-color-theme .mdlext-accordion__tab:focus {
  outline-color: rgba(109, 109, 109, 0.5);
}

.mdlext-light-color-theme .mdlext-accordion__tab[aria-expanded='true'] {
  background-color: rgba(117, 117, 117, 0.3);
}

.mdlext-light-color-theme .mdlext-accordion__tab[aria-selected='true'] {
  background-color: rgba(117, 117, 117, 0.4);
}

.mdlext-light-color-theme .mdlext-accordion__tab[disabled] {
  background-color: rgba(117, 117, 117, 0.12);
  color: rgba(0, 0, 0, 0.26);
  pointer-events: none;
}

.mdlext-light-color-theme .mdlext-accordion__tab[disabled] > * {
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdlext-accordion__tab:hover:not([disabled]) {
  background-color: rgba(117, 117, 117, 0.4);
}

.mdlext-light-color-theme .mdlext-accordion__tab--ripple[aria-selected='true']::before {
  background: rgba(117, 117, 117, 0.4);
}

.mdlext-light-color-theme .mdlext-accordion__tabpanel {
  color: inherit;
  background-color: transparent;
}

.mdlext-light-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab {
  border-top: 1px solid rgba(117, 117, 117, 0.5);
}

.mdlext-light-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab[aria-selected='true']::after {
  background-color: rgba(102, 102, 102, 0.5);
}

.mdlext-light-color-theme .mdlext-accordion--vertical .mdlext-accordion__tabpanel {
  border-top: 1px solid rgba(117, 117, 117, 0.5);
}

.mdlext-light-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab {
  border-left: 1px solid rgba(117, 117, 117, 0.5);
}

.mdlext-light-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab[aria-selected='true']::after {
  background-color: rgba(102, 102, 102, 0.5);
}

.mdlext-light-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tabpanel {
  border-left: 1px solid rgba(117, 117, 117, 0.5);
}

.mdlext-light-color-theme .mdlext-accordion__panel:first-child > .mdlext-light-color-theme .mdlext-accordion__tab {
  border-top-color: transparent;
  border-left-color: transparent;
}

.mdlext-light-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab {
  background-color: rgba(117, 117, 117, 0.12);
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab > * {
  color: rgba(0, 0, 0, 0.26);
}

.mdlext-light-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tabpanel {
  opacity: 0.8;
  filter: blur(1px) grayscale(80%);
}

/* -------------------------------------------------------------
   Palette samples. Not part of build
----------------------------------------------------------------

$mdlext-light-color-primary:          #9E9E9E !default;
$mdlext-light-color-primary-dark:     #616161 !default;
$mdlext-light-color-primary-light:    #9E9E9E !default;  // Fallback color. Set to color-primary if fallback is not needed
$mdlext-light-color-primary-contrast: #212121 !default;  // text color on primary/primary dark background
$mdlext-light-color-accent:           #E040FB !default;
$mdlext-light-color-accent-light:     #E040FB !default;  // Fallback color. Set to color-accent if fallback is not needed
$mdlext-light-color-accent-contrast:  #FAFAFA !default;

$mdlext-light-color-primary:          #F5F5F5 !default;
$mdlext-light-color-primary-dark:     #E0E0E0 !default;
$mdlext-light-color-primary-light:    #8BC34A !default;  // Fallback color. Set to color-primary if fallback is not needed
$mdlext-light-color-primary-contrast: #000000 !default;  // text color on primary/primary dark background
$mdlext-light-color-accent:           #FFC107 !default;
$mdlext-light-color-accent-light:     #FFC107 !default;  // Fallback color. Set to color-accent if fallback is not needed
$mdlext-light-color-accent-contrast:  #FFFFFF !default;


$mdlext-light-color-primary:          #673AB7 !default;
$mdlext-light-color-primary-dark:     #512DA8 !default;
$mdlext-light-color-primary-light:    #673AB7 !default;   // Fallback color. Set to color-primary if fallback is not needed
$mdlext-light-color-primary-contrast: #D1C4E9 !default;   // text color on primary/primary dark background
$mdlext-light-color-accent:           #4CAF50 !default;
$mdlext-light-color-accent-light:     #4CAF50 !default;   // Fallback color. Set to color-accent if fallback is not needed
$mdlext-light-color-accent-contrast:  #FFFFFF !default;


$mdlext-light-color-primary:          #4CAF50 !default;
$mdlext-light-color-primary-dark:     #388E3C !default;
$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed
$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background
$mdlext-light-color-accent:           #FF5252 !default;
$mdlext-light-color-accent-light:     #FF5252 !default;  // Fallback color. Set to color-accent if fallback is not needed
$mdlext-light-color-accent-contrast:  #FFFFFF !default;


$mdlext-light-color-primary:          #4CAF50 !default;
$mdlext-light-color-primary-dark:     #388E3C !default;
$mdlext-light-color-primary-light:    #4CAF50 !default;  // Fallback color. Set to color-primary if fallback is not needed
$mdlext-light-color-primary-contrast: #C8E6C9 !default;  // text color on primary/primary dark background
$mdlext-light-color-accent:           #03A9F4 !default;
$mdlext-light-color-accent-light:     #03A9F4 !default;  // Fallback color. Set to color-accent if fallback is not needed
$mdlext-light-color-accent-contrast:  #FFFFFF !default;


$mdlext-dark-color-primary:           #212121 !default;
$mdlext-dark-color-primary-dark:      #000000 !default;
$mdlext-dark-color-primary-light:     #607D8B !default;  // Fallback color. Set to color-primary if fallback is not needed
$mdlext-dark-color-primary-contrast:  #FFFFFF !default;  // text color on primary/primary dark background
$mdlext-dark-color-accent:            #FF5722 !default;
$mdlext-dark-color-accent-light:      #FF5722 !default;  // Fallback color. Set to color-accent if fallback is not needed
$mdlext-dark-color-accent-contrast:   #FFFFFF !default;

*/

.mdlext-dark-color-theme {
  background-color: #303030;
  color: white;
}

.mdlext-dark-color-theme a {
  outline-color: inherit;
}

.mdlext-dark-color-theme .mdl-color--primary {
  background-color: #FFC107 !important;
}

.mdlext-dark-color-theme .mdl-color--primary-contrast {
  background-color: #FFF8E1 !important;
}

.mdlext-dark-color-theme .mdl-color--primary-dark {
  background-color: #FFA000 !important;
}

.mdlext-dark-color-theme .mdl-color--accent {
  background-color: #536DFE !important;
}

.mdlext-dark-color-theme .mdl-color--accent-contrast {
  background-color: #FFFFFF !important;
}

.mdlext-dark-color-theme .mdl-color-text--primary {
  color: #FFC107 !important;
}

.mdlext-dark-color-theme .mdl-color-text--primary-contrast {
  color: #FFF8E1 !important;
}

.mdlext-dark-color-theme .mdl-color-text--primary-dark {
  color: #FFA000 !important;
}

.mdlext-dark-color-theme .mdl-color-text--accent {
  color: #536DFE !important;
}

.mdlext-dark-color-theme .mdl-color-text--accent-contrast {
  color: #FFFFFF !important;
}

.mdlext-dark-color-theme a {
  color: #536DFE;
}

.mdlext-dark-color-theme .mdl-badge[data-badge]::after {
  background: #536DFE;
  color: #FFFFFF;
}

.mdlext-dark-color-theme .mdl-badge.mdl-badge--no-background[data-badge]::after {
  color: #536DFE;
  background: #FFFFFF;
}

.mdlext-dark-color-theme .mdl-button {
  background: transparent;
  color: #FFFFFF;
}

.mdlext-dark-color-theme .mdl-button:hover {
  background-color: rgba(158, 158, 158, 0.2);
}

.mdlext-dark-color-theme .mdl-button:focus:not(:active) {
  background-color: rgba(0, 0, 0, 0.12);
}

.mdlext-dark-color-theme .mdl-button:active {
  background-color: rgba(158, 158, 158, 0.4);
}

.mdlext-dark-color-theme .mdl-button.mdl-button--colored {
  color: #FFC107;
}

.mdlext-dark-color-theme .mdl-button.mdl-button--colored:focus:not(:active) {
  background-color: rgba(0, 0, 0, 0.12);
}

.mdlext-dark-color-theme .mdl-button--raised {
  background: rgba(158, 158, 158, 0.2);
}

.mdlext-dark-color-theme .mdl-button--raised:active {
  background-color: rgba(158, 158, 158, 0.4);
}

.mdlext-dark-color-theme .mdl-button--raised:focus:not(:active) {
  background-color: rgba(158, 158, 158, 0.4);
}

.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored {
  background: #FFC107;
  color: #FFF8E1;
}

.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored:hover {
  background-color: #d39e00;
}

.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored:active {
  background-color: #d39e00;
}

.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored:focus:not(:active) {
  background-color: #d39e00;
}

.mdlext-dark-color-theme .mdl-button--raised.mdl-button--colored .mdl-ripple {
  background: #FFF8E1;
}

.mdlext-dark-color-theme .mdl-button--fab {
  background: rgba(158, 158, 158, 0.2);
}

.mdlext-dark-color-theme .mdl-button--fab:active {
  background-color: rgba(158, 158, 158, 0.4);
}

.mdlext-dark-color-theme .mdl-button--fab:focus:not(:active) {
  background-color: rgba(158, 158, 158, 0.4);
}

.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored {
  background: #536DFE;
  color: #FFFFFF;
}

.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored:hover {
  background-color: #536DFE;
}

.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored:focus:not(:active) {
  background-color: #536DFE;
}

.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored:active {
  background-color: #536DFE;
}

.mdlext-dark-color-theme .mdl-button--fab.mdl-button--colored .mdl-ripple {
  background: #FFFFFF;
}

.mdlext-dark-color-theme .mdl-button--icon {
  color: inherit;
}

.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary {
  color: #FFC107;
}

.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary .mdl-ripple {
  background: #FFF8E1;
}

.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--raised,
.mdlext-dark-color-theme .mdl-button--primary.mdl-button--primary.mdl-button--fab {
  color: #FFF8E1;
  background-color: #FFC107;
}

.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent {
  color: #536DFE;
}

.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent .mdl-ripple {
  background: #FFFFFF;
}

.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--raised,
.mdlext-dark-color-theme .mdl-button--accent.mdl-button--accent.mdl-button--fab {
  color: #FFFFFF;
  background-color: #536DFE;
}

.mdlext-dark-color-theme .mdl-button[disabled][disabled],
.mdlext-dark-color-theme .mdl-button.mdl-button--disabled.mdl-button--disabled {
  color: rgba(255, 255, 255, 0.26);
  background-color: transparent;
}

.mdlext-dark-color-theme .mdl-button--fab[disabled][disabled],
.mdlext-dark-color-theme .mdl-button--fab.mdl-button--disabled.mdl-button--disabled {
  background-color: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdl-button--raised[disabled][disabled],
.mdlext-dark-color-theme .mdl-button--raised.mdl-button--disabled.mdl-button--disabled {
  background-color: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdl-button--colored[disabled][disabled],
.mdlext-dark-color-theme .mdl-button--colored.mdl-button--disabled.mdl-button--disabled {
  color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded {
  background: transparent;
  color: #536DFE;
  /* stylelint-disable */
  /* stylelint-enable */
  /* stylelint-disable */
  /* stylelint-enable */
  /**************************** 0-value ****************************/
  /* stylelint-disable */
  /* stylelint-enable */
  /**************************** Disabled ****************************/
  /* stylelint-disable */
  /* stylelint-enable */
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded::-webkit-slider-runnable-track {
  background: transparent;
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded::-moz-range-track {
  background: transparent;
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-track {
  background: none;
  color: transparent;
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-fill-lower {
  background: linear-gradient(to right, transparent, transparent 16px, #536DFE 16px, #536DFE 0);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-fill-upper {
  background: linear-gradient(to left, transparent, transparent 16px, rgba(255, 255, 255, 0.87) 16px, rgba(255, 255, 255, 0.87) 0);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded::-webkit-slider-thumb {
  background: #536DFE;
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded::-moz-range-thumb {
  background: #536DFE;
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-webkit-slider-thumb {
  box-shadow: 0 0 0 10px rgba(83, 109, 254, 0.5);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-moz-range-thumb {
  box-shadow: 0 0 0 10px rgba(83, 109, 254, 0.5);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded:active::-webkit-slider-thumb {
  background: #536DFE;
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded:active::-moz-range-thumb {
  background: #536DFE;
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded::-ms-thumb {
  background: #536DFE;
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded:focus:not(:active)::-ms-thumb {
  background: radial-gradient(circle closest-side, #536DFE 0%, #536DFE 37.5%, rgba(83, 109, 254, 0.5) 37.5%, rgba(83, 109, 254, 0.5) 100%);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded:active::-ms-thumb {
  background: #536DFE;
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-webkit-slider-thumb {
  border-color: #536DFE;
  background: transparent;
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-moz-range-thumb {
  border-color: rgba(255, 255, 255, 0.87);
  background: transparent;
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-webkit-slider-thumb {
  box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.5);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-moz-range-thumb {
  box-shadow: 0 0 0 10px rgba(255, 255, 255, 0.5);
  background: rgba(255, 255, 255, 0.5);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-webkit-slider-thumb {
  border-color: rgba(255, 255, 255, 0.87);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-moz-range-thumb {
  border-color: rgba(255, 255, 255, 0.87);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-thumb {
  background: radial-gradient(circle closest-side, transparent 0%, transparent 66.67%, rgba(255, 255, 255, 0.87) 66.67%, rgba(255, 255, 255, 0.87) 100%);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:focus:not(:active)::-ms-thumb {
  background: radial-gradient(circle closest-side, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0.5) 25%, rgba(255, 255, 255, 0.87) 25%, rgba(255, 255, 255, 0.87) 37.5%, rgba(255, 255, 255, 0.5) 37.5%, rgba(255, 255, 255, 0.5) 100%);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:active::-ms-thumb {
  background: radial-gradient(circle closest-side, transparent 0%, transparent 77.78%, rgba(255, 255, 255, 0.87) 77.78%, rgba(255, 255, 255, 0.87) 100%);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value::-ms-fill-lower {
  background: transparent;
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:focus::-webkit-slider-thumb,
.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:active::-webkit-slider-thumb,
.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-webkit-slider-thumb {
  background: rgba(255, 255, 255, 0.87);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:focus::-moz-range-thumb,
.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:active::-moz-range-thumb,
.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-moz-range-thumb {
  background: rgba(255, 255, 255, 0.87);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled + .mdl-slider__background-flex > .mdl-slider__background-lower {
  background-color: rgba(255, 255, 255, 0.87);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-webkit-slider-thumb,
.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-webkit-slider-thumb,
.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-webkit-slider-thumb {
  border-color: rgba(255, 255, 255, 0.87);
  background: transparent;
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-moz-range-thumb,
.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-moz-range-thumb,
.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-moz-range-thumb {
  border-color: rgba(255, 255, 255, 0.87);
  background: transparent;
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:focus::-ms-thumb,
.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled:active::-ms-thumb,
.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-ms-thumb {
  background: rgba(255, 255, 255, 0.87);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:focus::-ms-thumb,
.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled:active::-ms-thumb,
.mdlext-dark-color-theme .mdl-slider.is-upgraded.is-lowest-value:disabled::-ms-thumb {
  background: radial-gradient(circle closest-side, transparent 0%, transparent 50%, rgba(255, 255, 255, 0.87) 50%, rgba(255, 255, 255, 0.87) 100%);
}

.mdlext-dark-color-theme .mdl-slider.is-upgraded:disabled::-ms-fill-lower {
  background: linear-gradient(to right, transparent, transparent 25px, rgba(255, 255, 255, 0.87) 25px, rgba(255, 255, 255, 0.87) 0);
}

.mdlext-dark-color-theme .mdl-slider__background-flex {
  background: transparent;
}

.mdlext-dark-color-theme .mdl-slider__background-lower {
  background: #536DFE;
}

.mdlext-dark-color-theme .mdl-slider__background-upper {
  background: rgba(255, 255, 255, 0.87);
}

.mdlext-dark-color-theme .mdl-textfield__input {
  border-bottom-color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdl-textfield.is-invalid .mdl-textfield__input {
  border-color: #FF1744;
}

.mdlext-dark-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__input,
.mdlext-dark-color-theme .mdl-textfield.is-disabled .mdl-textfield__input {
  background-color: transparent;
  border-bottom-color: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdl-textfield__label {
  color: rgba(255, 255, 255, 0.5);
}

.mdlext-dark-color-theme .mdl-textfield__label::after {
  background-color: #536DFE;
}

.mdlext-dark-color-theme fieldset[disabled] .mdl-textfield .mdl-textfield__label,
.mdlext-dark-color-theme .mdl-textfield.is-disabled.is-disabled .mdl-textfield__label {
  color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdl-textfield--floating-label.is-focused .mdl-textfield__label,
.mdlext-dark-color-theme .mdl-textfield--floating-label.is-dirty .mdl-textfield__label,
.mdlext-dark-color-theme .mdl-textfield--floating-label.has-placeholder .mdl-textfield__label {
  color: #536DFE;
}

.mdlext-dark-color-theme .mdl-textfield--floating-label.is-invalid .mdl-textfield__label {
  color: #FF1744;
}

.mdlext-dark-color-theme .mdl-textfield.is-invalid .mdl-textfield__label::after {
  background-color: #FF1744;
}

.mdlext-dark-color-theme .mdl-textfield__error {
  color: #FF1744;
}

.mdlext-dark-color-theme .mdl-checkbox__box-outline {
  border-color: rgba(255, 255, 255, 0.5);
}

.mdlext-dark-color-theme .mdl-checkbox.is-checked .mdl-checkbox__box-outline {
  border-color: #536DFE;
}

.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__box-outline,
.mdlext-dark-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__box-outline {
  border-color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdl-checkbox__focus-helper {
  background-color: transparent;
}

.mdlext-dark-color-theme .mdl-checkbox.is-focused.is-checked .mdl-checkbox__focus-helper {
  box-shadow: 0 0 0 8px rgba(83, 109, 254, 0.26);
  background-color: rgba(83, 109, 254, 0.26);
}

.mdlext-dark-color-theme .mdl-checkbox__tick-outline {
  background: transparent;
}

.mdlext-dark-color-theme .mdl-checkbox.is-checked .mdl-checkbox__tick-outline {
  background-color: #536DFE;
}

.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox.is-checked .mdl-checkbox__tick-outline,
.mdlext-dark-color-theme .mdl-checkbox.is-checked.is-disabled .mdl-checkbox__tick-outline {
  background-color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__label,
.mdlext-dark-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__label {
  color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdl-checkbox__ripple-container .mdl-ripple {
  background: #536DFE;
}

.mdlext-dark-color-theme fieldset[disabled] .mdl-checkbox .mdl-checkbox__ripple-container .mdl-ripple,
.mdlext-dark-color-theme .mdl-checkbox.is-disabled .mdl-checkbox__ripple-container .mdl-ripple {
  background: transparent;
}

.mdlext-dark-color-theme .mdl-radio__outer-circle {
  border-color: rgba(255, 255, 255, 0.5);
}

.mdlext-dark-color-theme .mdl-radio.is-checked .mdl-radio__outer-circle {
  border-color: #536DFE;
}

.mdlext-dark-color-theme .mdl-radio__outer-circle fieldset[disabled] .mdl-radio,
.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__outer-circle {
  border-color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdl-radio__inner-circle {
  background: #536DFE;
}

.mdlext-dark-color-theme fieldset[disabled] .mdl-radio .mdl-radio__inner-circle,
.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__inner-circle {
  background: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme fieldset[disabled] .mdl-radio .mdl-radio__label,
.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__label {
  color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdl-radio__ripple-container .mdl-ripple {
  background: #536DFE;
}

.mdlext-dark-color-theme fieldset[disabled] .mdl-radio .mdl-radio__ripple-container .mdl-ripple,
.mdlext-dark-color-theme .mdl-radio.is-disabled .mdl-radio__ripple-container .mdl-ripple {
  background: transparent;
}

.mdlext-dark-color-theme .mdl-icon-toggle__label {
  color: #616161;
}

.mdlext-dark-color-theme .mdl-icon-toggle.is-checked .mdl-icon-toggle__label {
  color: #536DFE;
}

.mdlext-dark-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__label {
  color: rgba(255, 255, 255, 0.5);
}

.mdlext-dark-color-theme .mdl-icon-toggle.is-focused .mdl-icon-toggle__label {
  background-color: rgba(0, 0, 0, 0.12);
}

.mdlext-dark-color-theme .mdl-icon-toggle.is-focused.is-checked .mdl-icon-toggle__label {
  background-color: rgba(83, 109, 254, 0.26);
}

.mdlext-dark-color-theme .mdl-icon-toggle__ripple-container .mdl-ripple {
  background: #616161;
}

.mdlext-dark-color-theme .mdl-icon-toggle.is-disabled .mdl-icon-toggle__ripple-container .mdl-ripple {
  background: transparent;
}

.mdlext-dark-color-theme .mdl-switch__track {
  background: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdl-switch.is-checked .mdl-switch__track {
  background: rgba(83, 109, 254, 0.5);
}

.mdlext-dark-color-theme .mdl-switch__track fieldset[disabled] .mdl-switch,
.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__track {
  background: rgba(255, 255, 255, 0.12);
}

.mdlext-dark-color-theme .mdl-switch__thumb {
  background: #FAFAFA;
}

.mdlext-dark-color-theme .mdl-switch.is-checked .mdl-switch__thumb {
  background: #536DFE;
}

.mdlext-dark-color-theme .mdl-switch__thumb fieldset[disabled] .mdl-switch,
.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__thumb {
  background: #FAFAFA;
}

.mdlext-dark-color-theme .mdl-switch__focus-helper {
  background-color: transparent;
}

.mdlext-dark-color-theme .mdl-switch.is-focused .mdl-switch__focus-helper {
  background-color: rgba(0, 0, 0, 0.1);
}

.mdlext-dark-color-theme .mdl-switch.is-focused.is-checked .mdl-switch__focus-helper {
  box-shadow: 0 0 0 20px rgba(83, 109, 254, 0.26);
  background-color: rgba(83, 109, 254, 0.26);
}

.mdlext-dark-color-theme .mdl-switch__label fieldset[disabled] .mdl-switch,
.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__label {
  color: #FAFAFA;
}

.mdlext-dark-color-theme .mdl-switch__ripple-container .mdl-ripple {
  background: #536DFE;
}

.mdlext-dark-color-theme fieldset[disabled] .mdl-switch .mdl-switch__ripple-container .mdl-ripple,
.mdlext-dark-color-theme .mdl-switch.is-disabled .mdl-switch__ripple-container .mdl-ripple {
  background: transparent;
}

.mdlext-dark-color-theme .mdl-data-table {
  border-color: rgba(255, 255, 255, 0.12);
  background-color: #303030;
}

.mdlext-dark-color-theme .mdl-data-table tbody tr.is-selected {
  background-color: #424242;
}

.mdlext-dark-color-theme .mdl-data-table tbody tr:hover {
  background-color: #212121;
}

.mdlext-dark-color-theme .mdl-data-table th {
  color: rgba(255, 255, 255, 0.87);
}

.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending,
.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending {
  color: rgba(255, 255, 255, 0.87);
}

.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-ascending:hover::before,
.mdlext-dark-color-theme .mdl-data-table th.mdl-data-table__header--sorted-descending:hover::before {
  color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdl-menu__outline {
  background: #000000;
}

.mdlext-dark-color-theme .mdl-menu__item {
  color: rgba(255, 255, 255, 0.87);
  background-color: transparent;
  outline-color: #616161;
}

.mdlext-dark-color-theme .mdl-menu__item--full-bleed-divider {
  border-bottom-color: rgba(255, 255, 255, 0.2);
}

.mdlext-dark-color-theme .mdl-menu__item[disabled],
.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled] {
  color: #9E9E9E;
  background-color: transparent;
}

.mdlext-dark-color-theme .mdl-menu__item[disabled]:hover,
.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled]:hover {
  background-color: transparent;
}

.mdlext-dark-color-theme .mdl-menu__item[disabled]:focus,
.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled]:focus {
  background-color: transparent;
}

.mdlext-dark-color-theme .mdl-menu__item[disabled] .mdl-ripple,
.mdlext-dark-color-theme .mdl-menu__item[data-mdl-disabled] .mdl-ripple {
  background: transparent;
}

.mdlext-dark-color-theme .mdl-menu__item:hover {
  background-color: #212121;
}

.mdlext-dark-color-theme .mdl-menu__item:focus {
  background-color: #212121;
}

.mdlext-dark-color-theme .mdl-menu__item:active {
  background-color: #424242;
}

.mdlext-dark-color-theme .mdl-card {
  background: #303030;
}

.mdlext-dark-color-theme .mdl-card__media {
  background-color: #536DFE;
}

.mdlext-dark-color-theme .mdl-card__title {
  color: white;
}

.mdlext-dark-color-theme .mdl-card__title.mdl-card--border {
  border-bottom-color: rgba(0, 0, 0, 0.1);
}

.mdlext-dark-color-theme .mdl-card__title-text {
  color: inherit;
}

.mdlext-dark-color-theme .mdl-card__subtitle-text {
  color: rgba(0, 0, 0, 0.7);
}

.mdlext-dark-color-theme .mdl-card__supporting-text {
  color: rgba(255, 255, 255, 0.7);
}

.mdlext-dark-color-theme .mdl-card__actions {
  background-color: rgba(255, 255, 255, 0);
}

.mdlext-dark-color-theme .mdl-card__actions.mdl-card--border {
  border-top-color: rgba(0, 0, 0, 0.1);
}

.mdlext-dark-color-theme .mdlext-selectfield.is-disabled::after {
  color: rgba(255, 255, 255, 0.12);
  content: '';
  width: 0;
  height: 0;
  font-size: inherit;
  line-height: inherit;
  border-top: 0.5em solid rgba(255, 255, 255, 0.12);
  border-top-width: 0.5em;
  border-top-style: solid;
  border-top-color: rgba(255, 255, 255, 0.12);
  border-left: 0.35em solid transparent;
  border-right: 0.35em solid transparent;
}

.mdlext-dark-color-theme .mdlext-selectfield__select {
  border-bottom-color: rgba(255, 255, 255, 0.26);
  color: inherit;
}

.mdlext-dark-color-theme .mdlext-selectfield__select option {
  background-color: #303030;
  color: white;
}

.mdlext-dark-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
  border-color: #FF1744;
}

.mdlext-dark-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select,
.mdlext-dark-color-theme .mdlext-selectfield.is-disabled .mdlext-selectfield__select {
  background-color: transparent;
  border-bottom-color: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdlext-selectfield__label {
  color: rgba(255, 255, 255, 0.5);
}

.mdlext-dark-color-theme fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-selectfield.is-disabled.is-disabled .mdlext-selectfield__label {
  color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-focused .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-dirty .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
  color: #536DFE;
}

.mdlext-dark-color-theme .mdlext-selectfield--floating-label.is-invalid .mdlext-selectfield__label {
  color: #FF1744;
}

.mdlext-dark-color-theme .mdlext-selectfield__label::after {
  background-color: #536DFE;
}

.mdlext-dark-color-theme .mdlext-selectfield.is-invalid .mdlext-selectfield__label::after {
  background-color: #FF1744;
}

.mdlext-dark-color-theme .mdlext-selectfield__error {
  color: #FF1744;
}

.mdlext-menu.mdlext-dark-color-theme {
  background: #000000;
}

.mdlext-dark-color-theme .mdlext-menu {
  background: #000000;
}

.mdlext-dark-color-theme .mdlext-menu__item {
  color: rgba(255, 255, 255, 0.87);
  background-color: #000000;
}

.mdlext-dark-color-theme .mdlext-menu__item:active,
.mdlext-dark-color-theme .mdlext-menu__item[aria-selected='true'] {
  background-color: #424242;
}

.mdlext-dark-color-theme .mdlext-menu__item:hover:not([disabled]) {
  background-color: #212121;
}

.mdlext-dark-color-theme .mdlext-menu__item:focus {
  outline-color: #616161;
  background-color: #212121;
}

.mdlext-dark-color-theme .mdlext-menu__item[disabled] {
  color: #9E9E9E;
}

.mdlext-dark-color-theme .mdlext-menu__item[disabled] > * {
  color: #9E9E9E;
}

.mdlext-dark-color-theme .mdlext-menu__item-separator {
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select {
  background-color: rgba(48, 48, 48, 0.1);
  border-color: rgba(255, 255, 255, 0.26);
  color: inherit;
}

.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:disabled,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:disabled,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:disabled,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:disabled {
  color: rgba(255, 255, 255, 0.26);
  background-color: rgba(48, 48, 48, 0.1);
  border-color: rgba(255, 255, 255, 0.12);
}

.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__input:focus,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__select:focus,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__input:focus,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__select:focus {
  background-color: rgba(23, 23, 23, 0.1);
  border-color: #536DFE;
}

.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select {
  color: inherit;
  border-color: #FF1744;
  background-color: rgba(255, 23, 68, 0.1);
}

.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdl-textfield__input:focus,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-invalid .mdlext-selectfield__select:focus,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdl-textfield__input:focus,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-invalid .mdlext-selectfield__select:focus {
  border-color: #e3002c;
  background-color: rgba(255, 23, 68, 0.1);
}

.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield::after,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled::after {
  color: rgba(255, 255, 255, 0.26);
  content: '';
  width: 0;
  height: 0;
  font-size: inherit;
  line-height: inherit;
  border-top: 0.5em solid rgba(255, 255, 255, 0.26);
  border-top-width: 0.5em;
  border-top-style: solid;
  border-top-color: rgba(255, 255, 255, 0.26);
  border-left: 0.35em solid transparent;
  border-right: 0.35em solid transparent;
}

.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__input,
.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdlext-selectfield__select {
  color: rgba(255, 255, 255, 0.26);
  background-color: rgba(48, 48, 48, 0.1);
  border-color: rgba(255, 255, 255, 0.12);
}

.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield .mdlext-selectfield__label {
  color: rgba(255, 255, 255, 0.5);
}

.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.has-placeholder .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-focused.is-focused .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-dirty.is-dirty .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.has-placeholder .mdlext-selectfield__label {
  color: #536DFE;
}

.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-disabled.is-disabled .mdlext-selectfield__label {
  color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdl-textfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.mdlext-selectfield--floating-label.is-invalid.is-invalid .mdlext-selectfield__label {
  color: #FF1744;
}

.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-textfield__label,
.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-selectfield .mdl-selectfield__label {
  color: rgba(255, 255, 255, 0.26);
}

.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled i,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdl-textfield.is-disabled .mdl-button,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled i,
.mdlext-dark-color-theme .mdlext-bordered-fields .mdlext-selectfield.is-disabled .mdl-button {
  color: rgba(255, 255, 255, 0.12);
}

.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield i,
.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdl-textfield .mdl-button,
.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield i,
.mdlext-dark-color-theme .mdlext-bordered-fields fieldset[disabled] .mdlext-selectfield .mdl-button {
  color: rgba(255, 255, 255, 0.12);
}

.mdlext-dark-color-theme .mdlext-accordion__tab {
  color: white;
  background-color: black;
}

.mdlext-dark-color-theme .mdlext-accordion__tab:focus {
  outline-color: #a8a8a8;
}

.mdlext-dark-color-theme .mdlext-accordion__tab[aria-expanded='true'] {
  background-color: rgba(0, 0, 0, 0.9);
}

.mdlext-dark-color-theme .mdlext-accordion__tab[aria-selected='true'] {
  background-color: rgba(0, 0, 0, 0.6);
}

.mdlext-dark-color-theme .mdlext-accordion__tab[disabled] {
  background-color: rgba(0, 0, 0, 0.4);
  color: rgba(255, 255, 255, 0.5);
  pointer-events: none;
}

.mdlext-dark-color-theme .mdlext-accordion__tab[disabled] > * {
  color: rgba(255, 255, 255, 0.5);
}

.mdlext-dark-color-theme .mdlext-accordion__tab:hover:not([disabled]) {
  background-color: rgba(0, 0, 0, 0.5);
}

.mdlext-dark-color-theme .mdlext-accordion__tab--ripple[aria-selected='true']::before {
  background: rgba(0, 0, 0, 0.3);
}

.mdlext-dark-color-theme .mdlext-accordion__tabpanel {
  color: inherit;
  background-color: transparent;
}

.mdlext-dark-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab {
  border-top: 1px solid #424242;
}

.mdlext-dark-color-theme .mdlext-accordion--vertical .mdlext-accordion__tab[aria-selected='true']::after {
  background-color: #a8a8a8;
}

.mdlext-dark-color-theme .mdlext-accordion--vertical .mdlext-accordion__tabpanel {
  border-top: 1px solid #424242;
}

.mdlext-dark-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab {
  border-left: 1px solid #424242;
}

.mdlext-dark-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tab[aria-selected='true']::after {
  background-color: #a8a8a8;
}

.mdlext-dark-color-theme .mdlext-accordion--horizontal .mdlext-accordion__tabpanel {
  border-left: 1px solid #424242;
}

.mdlext-dark-color-theme .mdlext-accordion__panel:first-child > .mdlext-dark-color-theme .mdlext-accordion__tab {
  border-top-color: transparent;
  border-left-color: transparent;
}

.mdlext-dark-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab {
  background-color: rgba(0, 0, 0, 0.4);
  color: rgba(255, 255, 255, 0.5);
}

.mdlext-dark-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tab > * {
  color: rgba(255, 255, 255, 0.5);
}

.mdlext-dark-color-theme .mdlext-accordion[disabled] .mdlext-accordion__tabpanel {
  opacity: 0.8;
  filter: blur(1px) grayscale(80%);
}


/*# sourceMappingURL=mdl-ext.css.map*/