html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block; }

body {
  line-height: 1; }

ol, ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

blockquote:before, blockquote:after {
  content: "";
  content: none; }

q:before, q:after {
  content: "";
  content: none; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

body {
  color: #222222;
  font-family: "Open Sans", "Hevetica Neue", "Helvetica", sans-serif; }

.clear {
  clear: both; }

a {
  -webkit-transition: color, 0.2s;
          transition: color, 0.2s;
  color: #66FFCC; }
  a:hover {
    color: #00e89b; }

strong {
  font-weight: bold; }

.dynamicProgrammingMatrixWrapper {
  margin: 0 auto; }
  .dynamicProgrammingMatrixWrapper td {
    position: relative; }
    .dynamicProgrammingMatrixWrapper td.irrelevant {
      opacity: 0.45; }
    .dynamicProgrammingMatrixWrapper td.guided input {
      box-shadow: inset 0 0 10px #66FFCC; }
  .dynamicProgrammingMatrixWrapper input[type=text], .dynamicProgrammingMatrixWrapper .dynamicProgrammingMatrixCell {
    width: 50px;
    height: 50px;
    text-align: center;
    background-color: #eeeeee;
    border: 1px solid #66FFCC;
    color: #555555; }
  .dynamicProgrammingMatrixWrapper > tbody > tr:nth-child(1) td input[type=text], .dynamicProgrammingMatrixWrapper > tbody > tr > td:nth-child(1) input[type=text] {
    background-color: #333333;
    color: #66FFCC;
    font-weight: bold; }
  .dynamicProgrammingMatrixWrapper .dynamicProgrammingMatrix {
    position: absolute;
    top: 0;
    left: 0; }
  .dynamicProgrammingMatrixWrapper .dynamicProgrammingMatrixCell:disabled {
    background-color: #666666;
    opacity: .5;
    color: #000; }
  .dynamicProgrammingMatrixWrapper .dynamicProgrammingMatrixCell.correct {
    background-color: green;
    color: #404040; }
  .dynamicProgrammingMatrixWrapper .dynamicProgrammingMatrixCell.correct:disabled {
    background-color: #337333;
    color: #000; }
  .dynamicProgrammingMatrixWrapper .dynamicProgrammingMatrixCell.wrong {
    background-color: red; }
  .dynamicProgrammingMatrixWrapper .dynamicProgrammingMatrixCell.wrong:disabled {
    background-color: #b33333;
    color: #000; }
  .dynamicProgrammingMatrixWrapper .dynamicProgrammingMatrixCell.tracebackActive {
    background-color: blue; }
  .dynamicProgrammingMatrixWrapper .tracebackSelect {
    position: absolute;
    text-align: left;
    top: 2px;
    left: 2px;
    width: 14.28571px;
    height: 14.28571px;
    background-color: #aaa;
    cursor: pointer;
    outline: none;
    font-size: 0.7rem;
    line-height: 14.28571px;
    border: 1px solid rgba(0, 0, 0, 0.5); }
    .dynamicProgrammingMatrixWrapper .tracebackSelect.correct {
      background-color: #006700; }
    .dynamicProgrammingMatrixWrapper .tracebackSelect.wrong {
      background-color: #db0000; }

#tracebackSelectOptions {
  display: none;
  position: absolute;
  z-index: 99;
  background-color: #66FFCC;
  border: 1px outset #00e89b;
  text-align: left;
  padding: 10px; }

#tracebackSelectOptionsOverlay {
  display: none;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 98;
  width: 100%;
  height: 100%; }

.arrow {
  display: none;
  position: absolute;
  border-top: 3px solid transparent;
  border-right: 6px solid #000;
  border-bottom: 3px solid transparent; }
  .arrow::before {
    content: "";
    display: inline-block;
    position: absolute;
    top: -1px;
    left: 4px;
    border-width: 0;
    background: #000;
    width: 8px;
    height: 2px; }
  .arrow.active {
    display: block; }

.arrow-left {
  bottom: 0px;
  right: 8px; }
  .arrow-left.alone {
    bottom: 4px;
    right: 8px; }

.arrow-top {
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg);
  -webkit-transform-origin: 100% 0%;
      -ms-transform-origin: 100% 0%;
          transform-origin: 100% 0%;
  bottom: 2px;
  right: 0px; }
  .arrow-top.alone {
    bottom: 1px;
    right: 4px; }

.arrow-diag {
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
  -webkit-transform-origin: 100% 0%;
      -ms-transform-origin: 100% 0%;
          transform-origin: 100% 0%;
  bottom: 5px;
  right: 7px; }
  .arrow-diag.alone {
    bottom: 5px;
    right: 7px; }
  .arrow-diag::before {
    width: 10px; }

body {
  text-align: center; }

input {
  text-transform: uppercase; }

.alignmentContainer {
  line-height: 20px; }
  .alignmentContainer > div {
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
        -ms-flex-pack: center;
            justify-content: center;
    margin: 10px 0 30px; }
  .alignmentContainer .alignmentSelectorLabel {
    text-align: right; }
    .alignmentContainer .alignmentSelectorLabel .alignmentSelectorRadio {
      margin-right: 30px; }
  .alignmentContainer .alignment {
    text-align: left;
    font-family: "Lucida Console", Monaco, monospace;
    font-size: 20px;
    letter-spacing: 5px; }

.alignmentInput {
  font-family: "Lucida Console", Monaco, monospace;
  font-size: 20px;
  letter-spacing: 5px; }
  .alignmentInput.wrong {
    background-color: red; }
  .alignmentInput.correct {
    background-color: green; }

#topBar {
  background-color: #222222;
  overflow: auto;
  width: 100vw;
  height: 50px;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
  color: #73E1FF;
  text-align: left; }
  #topBar h1 {
    font-size: 1.5rem;
    line-height: 50px;
    padding: 0 20px; }

.sidebar {
  float: left;
  width: 300px;
  height: calc(100vh - 50px);
  overflow-y: auto;
  background-color: #222222;
  position: fixed;
  top: 50px;
  left: 0;
  z-index: 10;
  color: #eeeeee;
  text-align: left; }
  .sidebar .sidebarTabHeader {
    background-color: #333333;
    text-align: left;
    font-size: 1.5rem;
    line-height: 40px;
    height: 40px;
    padding-left: 10px;
    border-bottom: 1px solid #666666;
    cursor: pointer; }
    .sidebar .sidebarTabHeader a {
      color: #EEEEEE;
      text-decoration: none; }
    .sidebar .sidebarTabHeader:hover {
      background-color: #212121;
      -webkit-transition: background-color, 0.2s;
              transition: background-color, 0.2s; }
      .sidebar .sidebarTabHeader:hover a {
        color: #9b9b9b; }
    .sidebar .sidebarTabHeader.active {
      background-color: #384742; }
      .sidebar .sidebarTabHeader.active a {
        color: #66FFCC; }
      .sidebar .sidebarTabHeader.active:hover {
        background-color: #242e2b; }
        .sidebar .sidebarTabHeader.active:hover a {
          color: #00e89b; }
  .sidebar .sidebarTabContent {
    display: none;
    background-color: #444444;
    padding: 20px 10px; }
  .sidebar #settings {
    display: block; }
  .sidebar #help {
    text-align: center; }
    .sidebar #help #stuck {
      margin: 20px 0; }
    .sidebar #help table.hint {
      text-align: left;
      margin: 30px auto; }
      .sidebar #help table.hint td:nth-child(1) {
        padding-right: 5px; }
      .sidebar #help table.hint td:nth-child(2) {
        padding: 5px 0 5px 5px;
        border-left: 1px solid #eeeeee; }

#chatBubble {
  display: none;
  position: relative;
  background: #666666;
  border: 4px solid #73E1FF;
  margin: 20px 10px 40px;
  padding: 40px 0;
  border-radius: 6px; }

#chatBubble:after, #chatBubble:before {
  top: 100%;
  left: 50%;
  border: solid transparent;
  content: " ";
  height: 0;
  width: 0;
  position: absolute;
  pointer-events: none; }

#chatBubble:after {
  border-color: rgba(136, 183, 213, 0);
  border-top-color: #666666;
  border-width: 30px;
  margin-left: -30px; }

#chatBubble:before {
  border-color: rgba(194, 225, 245, 0);
  border-top-color: #73E1FF;
  border-width: 36px;
  margin-left: -36px; }

#wrapper, #testing {
  float: left;
  width: calc(100vw - 300px);
  margin: 50px 0 0 300px; }
  #wrapper h2, #testing h2 {
    height: 40px;
    line-height: 40px;
    font-size: 1.5rem;
    background-color: #73E1FF;
    border-bottom: 1px solid #CCCCCC; }
  #wrapper h2 + div, #testing h2 + div {
    padding: 20px; }

#testing {
  display: none;
  position: absolute;
  background-color: orange; }

.sequence {
  font-family: "Lucida Console", Monaco, monospace;
  letter-spacing: 5px; }

#settings input {
  font-family: "Lucida Console", Monaco, monospace;
  font-size: 1rem;
  margin: 5px 0 10px; }

#intro {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.75);
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
  -webkit-align-items: center;
      -ms-flex-align: center;
          align-items: center; }
  #intro .message {
    width: 600px;
    padding: 100px;
    background-color: #fff;
    text-align: left; }
    #intro .message h3 {
      font-size: 2rem;
      margin-bottom: 0.5rem; }
    #intro .message h4 {
      font-size: 1.2rem;
      margin: 1.5rem 0 0.5rem; }
    #intro .message p {
      margin: 0.5rem 0; }
    #intro .message ul {
      margin-left: 20px;
      list-style-type: circle; }

.no-close .ui-dialog-title {
  width: 100%; }

.no-close .ui-dialog-titlebar-close {
  display: none; }
