/* Flexible box model classes */
/* Taken from Alex Russell http://infrequently.org/2009/08/css-3-progress/ */
/* This file is a compatability layer.  It allows the usage of flexible box 
model layouts accross multiple browsers, including older browsers.  The newest,
universal implementation of the flexible box model is used when available (see
`Modern browsers` comments below).  Browsers that are known to implement this 
new spec completely include:

    Firefox 28.0+
    Chrome 29.0+
    Internet Explorer 11+ 
    Opera 17.0+

Browsers not listed, including Safari, are supported via the styling under the
`Old browsers` comments below.
*/
.widget-modal-backdrop {
  position: absolute;
  left: 0px;
  top: 0px;
  width: 100%;
  height: 100%;
  background: black;
  z-index: 999;
  opacity: 0.5;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}
.widget-modal-backdrop.widget-modal-hidden {
  display: none;
}
.widget-modal-backdrop.widget-modal-hide {
  animation: fadeout 0.25s;
}
.widget-modal-backdrop.widget-modal-show {
  animation: fadein 0.25s;
}
@keyframes fadein {
  from {
    opacity: 0.0;
  }
  to {
    opacity: 0.5;
  }
}
@keyframes fadeout {
  from {
    opacity: 0.5;
  }
  to {
    opacity: 0.0;
  }
}
.widget-modal-text {
  color: white;
  font-size: x-large;
  font-weight: bold;
}
.widget-modal-text i,
.widget-modal-text div {
  display: inline;
}
.widget-modal-text div {
  padding-left: 1ex;
}
.widget-modal-progress {
  width: 300px;
}
.jupyter-widgets {
  margin: 2px;
}
.jupyter-widgets.widget-container {
  margin: 0px;
}
.widget-area {
  /*
    LESS file that styles Jupyter widgets and the area they sit in.

    The widget area typically looks something like this:
     +------------------------------------------+
     | widget-area                              |
     |  +--------+---------------------------+  |
     |  | prompt | widget-subarea            |  |
     |  |        | +-----------------------+ |  |
     |  |        | |         widget        | |  |
     |  |        | +-----------------------+ |  |
     |  |        | +-----------------------+ |  |
     |  |        | |         widget        | |  |
     |  |        | +-----------------------+ |  |
     |  +--------+---------------------------+  |
     +------------------------------------------+
    */
  page-break-inside: avoid;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
.widget-area .widget-subarea {
  padding: 0.4em 0 0.4em 0;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  /* Old browsers */
  -webkit-box-flex: 2;
  -moz-box-flex: 2;
  box-flex: 2;
  /* Modern browsers */
  flex: 2;
  /* Old browsers */
  -webkit-box-align: start;
  -moz-box-align: start;
  box-align: start;
  /* Modern browsers */
  align-items: flex-start;
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.widget-area.connection-problems .prompt:after {
  content: "\f127";
  font-family: 'FontAwesome';
  color: #d9534f;
  top: 3px;
  padding: 3px;
}
/* THE CLASSES BELOW CAN APPEAR ANYWHERE IN THE DOM (POSSIBLY OUTSIDE OF
   THE WIDGET AREA). */
.slide-track {
  /* Slider Track */
  border: 1px solid #CCCCCC;
  background: #FFFFFF;
  border-radius: 2px;
  /* Round the corners of the slide track */
}
.widget-hslider {
  /* Horizontal jQuery Slider

    Both the horizontal and vertical versions of the slider are characterized
    by a styled div that contains an invisible jQuery slide div which
    contains a visible slider handle div.  This is requred so we can control
    how the slider is drawn and 'fix' the issue where the slide handle
    doesn't stop at the end of the slide.

    Both horizontal and vertical sliders have this div nesting:
    +------------------------------------------+
    | widget-(h/v)slider                       |
    |  +--------+---------------------------+  |
    |  | ui-slider                          |  |
    |  |          +------------------+      |  |
    |  |          | ui-slider-handle |      |  |
    |  |          +------------------+      |  |
    |  +--------+---------------------------+  |
    +------------------------------------------+
    */
  width: 300px;
}
.widget-hslider .slider-container {
  /* Fix the padding of the slide track so the ui-slider is sized
        correctly. */
  padding-left: 8px;
  padding-right: 2px;
  overflow: visible;
  /* Default size of the slider */
  flex-grow: 1;
  height: 5px;
  max-height: 5px;
  margin-top: 15px;
  margin-bottom: 12px;
  /* Style the slider track */
  /* Slider Track */
  border: 1px solid #CCCCCC;
  background: #FFFFFF;
  border-radius: 2px;
  /* Round the corners of the slide track */
  /* Make the div a flex box (makes FF behave correctly). */
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
.widget-hslider .slider-container .ui-slider {
  /* Inner, invisible slide div */
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
  border: 0px;
  background: none;
}
.widget-hslider .slider-container .ui-slider .ui-slider-handle {
  width: 12px;
  height: 28px;
  margin-top: -8px;
  border-radius: 2px;
}
.widget-hslider .slider-container .ui-slider .ui-slider-range {
  height: 12px;
  margin-top: -4px;
}
.widget-vslider {
  /* Vertical jQuery Slider */
  width: 50px;
  height: 250px;
}
.widget-vslider .slider-container {
  /* Fix the padding of the slide track so the ui-slider is sized
        correctly. */
  padding-bottom: 5px;
  overflow: visible;
  flex-grow: 1;
  /* Default size of the slider */
  width: 5px;
  max-width: 5px;
  margin-left: auto;
  margin-right: auto;
  /* Style the slider track */
  /* Slider Track */
  border: 1px solid #CCCCCC;
  background: #FFFFFF;
  border-radius: 2px;
  /* Round the corners of the slide track */
  /* Make the div a flex box (makes FF behave correctly). */
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.widget-vslider .slider-container .ui-slider {
  /* Inner, invisible slide div */
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  /* Old browsers */
  -webkit-box-flex: 1;
  -moz-box-flex: 1;
  box-flex: 1;
  /* Modern browsers */
  flex: 1;
  border: 0px;
  background: none;
  margin-left: -4px;
  margin-top: 5px;
}
.widget-vslider .slider-container .ui-slider .ui-slider-handle {
  width: 28px;
  height: 12px;
  margin-left: -9px;
  border-radius: 2px;
}
.widget-vslider .slider-container .ui-slider .ui-slider-range {
  width: 12px;
  margin-left: -1px;
}
.widget-colorpicker {
  /* Button */
  width: 300px;
  display: flex;
}
.widget-colorpicker.short {
  width: 148px;
}
.widget-colorpicker .input-group {
  flex-grow: 1;
}
.widget-button {
  /* Button */
  width: 148px;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
}
.widget-button.btn,
.widget-button.btn:active,
.widget-button.btn:focus,
.widget-button.btn.hover {
  outline: none !important;
}
.widget-button.btn:active {
  box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
}
.widget-checkbox {
  width: 148px;
}
.widget-toggle-button {
  /* Button */
  width: 148px;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
}
.widget-toggle-button.btn,
.widget-toggle-button.btn:active,
.widget-toggle-button.btn:focus,
.widget-toggle-button.btn.hover {
  outline: none !important;
}
.widget-toggle-buttons .btn,
.widget-toggle-buttons .btn:active,
.widget-toggle-buttons .btn:focus,
.widget-toggle-buttons .btn.hover {
  outline: none !important;
}
.widget-toggle-buttons .btn.active {
  box-shadow: none !important;
}
.widget-toggle-buttons .btn-group {
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
}
.widget-text {
  /* Textbox */
  width: 300px;
}
.widget-textarea {
  /* TextAreaView */
  width: 300px;
}
.widget-listbox {
  /* Listbox */
  width: 300px;
}
.widget-dropdown {
  /* Dropdown */
  width: 300px;
}
.widget-dropdown .widget_item {
  display: flex;
  flex-grow: 1;
}
.widget-dropdown .widget-combo-btn {
  flex-grow: 1;
  min-width: 10px;
}
.widget-dropdown .dropdown-menu {
  max-height: 200px;
  overflow: hidden;
  overflow-y: auto;
}
.widget-numeric-text {
  /* Single Line Textbox - used for IntTextView and FloatTextView */
  width: 148px;
}
.widget-hprogress {
  /* Progress Bar */
  width: 300px;
  height: 32px;
}
.widget-hprogress .progress {
  flex-grow: 1;
  margin-top: auto;
  margin-bottom: auto;
}
.widget-hprogress .progress-bar {
  /* Disable progress bar animation */
  -webkit-transition: none;
  -moz-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
}
.widget-vprogress {
  /* Progress Bar */
  height: 250px;
  width: 50px;
}
.widget-vprogress .progress {
  flex-grow: 1;
  width: 12px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0;
}
.widget-vprogress .progress-bar {
  /* Disable progress bar animation */
  -webkit-transition: none;
  -moz-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
}
.widget-combo-btn {
  /* ComboBox Main Button */
  /* Subtract 25px to account for the drop arrow button */
  min-width: 123px;
}
.widget_item .dropdown-menu li a {
  color: inherit;
}
.widget-valid {
  /* Valid Check */
  margin-top: 8px;
  margin-bottom: 16px;
  margin-left: 5px;
  margin-right: 5px;
}
.widget-hbox {
  /* Horizontal widgets */
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: horizontal;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: horizontal;
  -moz-box-align: stretch;
  display: box;
  box-orient: horizontal;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
.widget-hbox input[type="checkbox"] {
  margin-top: 10px;
  margin-bottom: 10px;
}
.widget-hbox input[type="color"] {
  height: 32px;
  width: 28px;
  padding: 1px;
}
.widget-hbox .widget-label {
  /* Horizontal Label */
  min-width: 10ex;
  max-width: 10ex;
  padding-right: 8px;
  padding-top: 5px;
  text-align: right;
  vertical-align: text-top;
  word-wrap: break-word;
}
.widget-hbox .widget-readout {
  padding-left: 4px;
  padding-top: 5px;
  text-align: center;
  vertical-align: text-top;
  min-width: 4em;
  max-width: 4em;
  word-wrap: break-word;
}
.widget-vbox {
  /* Vertical Widgets */
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.widget-vbox input[type="color"] {
  height: 32px;
  padding: 1px;
}
.widget-vbox .widget-label {
  /* Vertical Label */
  padding-bottom: 5px;
  text-align: center;
  vertical-align: text-bottom;
}
.widget-vbox .widget-readout {
  /* Vertical Label */
  padding-top: 5px;
  text-align: center;
  vertical-align: text-top;
}
.widget-box {
  /* Box */
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  /* Old browsers */
  -webkit-box-align: start;
  -moz-box-align: start;
  box-align: start;
  /* Modern browsers */
  align-items: flex-start;
}
.widget-radio-box {
  /* Contains RadioButtonsWidget */
  /* Old browsers */
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-box-align: stretch;
  display: -moz-box;
  -moz-box-orient: vertical;
  -moz-box-align: stretch;
  display: box;
  box-orient: vertical;
  box-align: stretch;
  /* Modern browsers */
  display: flex;
  flex-direction: column;
  align-items: stretch;
  box-sizing: border-box;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  padding-top: 4px;
}
.widget-radio-box label {
  margin-top: 2px;
  margin-bottom: 2px;
  margin-left: 22px;
}
