* {
  margin: 0;
  padding: 0;

  font-family: Georgia, Palatino, Times, 'Times New Roman', sans-serif;

  box-sizing: border-box;
}

body {
  background: #1d1f21;
  color: #c9cacc;
  background-image: url("/top_left.png");
  background-repeat: no-repeat;
  background-attachment: fixed;
  background-size: 7%;
  background-position: left top;
  font-size: 16px;
}

@media only screen and (max-width: 768px) {
  body {
    background: #1d1f21;
    color: #c9cacc;
    background-image: url("/bottom_left.png");
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-size: 30%;
    background-position: left bottom;
    font-size: 16px;
  }
}

a {
  text-decoration: none;
}

a:link,
a:visited {
  /*color: #f20;*/
  color: #547cff;
}

a:hover {
  /*color: #f90;*/
  color: #2bddff;
}

.scaffolding {
  width: 83%;

  padding-top: 20px;
  padding-left: 10%;
  padding-right: 14%;

  margin-top: 3%;
  margin-left: auto;
  margin-right: auto;

  table-layout: fixed;
}

#main {

}

@media only screen and (max-width: 768px) {
  #main {
    width: 100%;

    padding-top: 5%;
    padding-left: 10%;
    padding-right: 5%;
    padding-bottom: 37%;
  
    margin-top: 3%;
    margin-left: auto;
    margin-right: auto;
  }
}

#main h1 {
  color: #2bbc8a;
  font-size: 40px;
  font-weight: normal;

  line-height: 40px;

  letter-spacing: -1px;

  text-align: center;

  margin-bottom: 20px;
}

#main p {
  margin: 20px 0;

  font-size: 16px;

  line-height: 20px;
}

#main ul, #main ol {
  margin: 20px;
}

#main li {
  font-size: 16px;

  line-height: 20px;
}

#main ul li {
  list-style-type: none;
}

.scaffolding td {
}

#sidebar_holder {
  vertical-align: top;
}

#sidebar {
  border-right: 1px solid white;
}

#sidebar:after {
  content: "";
  display: block;
  width: 70%;
  border-right: 1px solid red;
  margin: 1em auto 0;
}

#footer {
  text-align: center;
  position: relative;
  bottom: 0;
}

table {
  border-collapse: collapse;
}

table, tr {
  border: 1px solid #666;
}

#data_table  {
  white-space: nowrap;
  overflow: scroll;
}

.hidden {
  display: none;
}

#popup_header {
  float: left;
}

#closer_x {
  float: right;
  background: #ddd;
  padding: 3px;
  border: 1px solid black;
  border-radius: 3px;
}

#confirm_form {
  width: 80%;
  margin: auto;
  text-align: center;
}


button {
  font-size: 16px;
}

#confirmation {
  position: fixed;
  top: 40%;
  left: 35%;
  width: 30%;
  height: 165px;
  padding: 16px;
  border: 8px solid #547cff;
  border-radius: 10px;
  /*border: 12px solid #2bbc8a;*/
  background-color: white;
  z-index: 1002;
  overflow: auto;
  color: black;
}

#popup_analyst {
  position: fixed;
  top: 40%;
  left: 35%;
  width: 30%;
  height: 180px;
  padding: 16px;
  border: 8px solid #547cff;
  border-radius: 10px;
  /*border: 12px solid #2bbc8a;*/
  background-color: white;
  z-index: 1002;
  overflow: auto;
  color: black;
}

#popup_forgot {
  position: fixed;
  top: 40%;
  left: 35%;
  width: 30%;
  height: 180px;
  padding: 16px;
  border: 8px solid #547cff;
  border-radius: 10px;
  /*border: 12px solid #2bbc8a;*/
  background-color: white;
  z-index: 1002;
  overflow: auto;
  color: black;
}

#blackbackground, #blackbackground2 {
  position: fixed;
  top: 0%;
  left: 0%;
  width: 100%;
  height: 100%;
  background-color: black;
  z-index: 1001;
  -moz-opacity: 0.8;
  opacity: .80;
  filter: alpha(opacity=80);
}

input:invalid {
  border: 2px dashed red;
}

#login input:invalid {
  border: 1px solid red;
}

.data {
}

.data td {
}

.data tbody tr:hover {
  background-color: #2e3236;
}

th {
  padding-left: 10px;
  padding-right: 10px;
  color: #2bbc8a;
}

td {
  /*font-family: Courier New;*/
  padding-left: 10px;
  padding-right: 10px;
}

#linkbar td {
  padding-top: 5px;
  padding-bottom: 5px;
}

#open_links {
  text-align: left;
  white-space: nowrap;
}

#user_links {
  text-align: right;
  white-space: nowrap;
}

#sidebar a {
}

#content {
  padding-top: 1.5vw;
  padding-right: 5vw;
  padding-bottom: 2vw;
  padding-left: 3%;
}

#flash {
  text-align: center;
  padding-left: 12vw;
  padding-right: 12vw;
}

#login {
  font-size: 16px;
  padding-bottom: 2vw;

  padding-left: 12vw;
  padding-right: 12vw;
}

#invoice_input, #login_input {
  float: right;
}

#submit_button {
  font-size: 16px;
  padding: 5px;
}

#new_invoice {
  padding-right: 50%;
  display: inline-block;
}

textarea, input {
  font-size: 16px;
}

pre {
  font-family: Monaco;
  font-size: 16px;
  background: #ffffff;
}

.mono {
  font-family: Monaco;
  font-size: 14px;
}

#header_info {
  margin-bottom: 3%;
  display: flex;
  flex-direction: row;
}

#recording_map {
  height: 400px;
  width: 400px;
  border: 1px solid #fff;

  margin-left: 10%;
}

#recordings {
  clear: both;
}

#password_rules {
  color: #e85151;
}

#explanation {
  width: 50%;
  margin: 0 auto;
}

details[open] summary ~ * {
  animation: sweep .5s ease-in-out;
}

details {
  border-radius: 15px;
  border: 1px solid blue;
  /*border: 1px solid #03b1fc;*/
  padding: 5px;
  margin: 10px;
  color: #444;
  background-color: #ddd;
  text-align: center;
}

summary {
  text-align: left;
  font-weight: bold;
  padding: 5px;
}

summary a:hover, summary a:visited,
details a:hover, details a:visited {
  color: #0058e3;
}

@keyframes sweep {
  0%    {opacity: 0; transform: translateX(-10px)}
  100%  {opacity: 1; transform: translateX(0)}
}

#usage {
  width: 50%;
  margin: 0 auto;
  padding-bottom: 15px;
}

details ol {
  padding-left: 20px;
  text-align: left;
}

#info_table {
  align-self: flex-start;
  width: 60%;
  margin: 0 auto;
}

#info_table #editable {
  border: 1px solid #03b1fc;
}

#info_table #editable,
#info_table input {
  background: #333;
  color: #fff;
  width: 90%;
}

#info_table td {
  padding-top: 2px;
}

#info_table .notes {
  height: 100px;
  vertical-align: top;
}

#info_table textarea {
  height: 100%;
  width: 100%;
  background: #333;
  border: none;
  color: #fff;
}

#info_submit {
  /*padding: 3px;
  margin-left: 40%;*/

  padding-top: 5px;
  padding-bottom: 5px;
  padding-left: 7px;
  padding-right: 7px;

  margin-left: 15px;
  margin-right: 15px;
  margin-bottom: 10px;

  border-radius: 10px;
  border: 1px solid blue;
}

#buttons {
  width: 30%;
  margin: 0 auto;
}

select {
  border: 1px solid #03b1fc;
  background: transparent;
  color: #fff;
  font-size: 16px;
  width: 90%;
  padding-left: 7px;

  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
}

select::after {
  content: '▼'; /* Unicode character for a simple arrow */
  color: #03b1fc;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  font-size: 12px;
  display: block;
}

select:focus {
  outline: none;
  box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
}

.btn-group {
  margin: 15px;
}

.col_btn {
  padding-top: 5px;
  padding-bottom: 5px;
  padding-left: 7px;
  padding-right: 7px;

  margin-left: 15px;
  margin-right: 15px;
  margin-bottom: 10px;

  border-radius: 10px;
  border: 1px solid blue;
}

.col_shown {
  background: #dbe8ff;
}

.col_hidden {
  color: #ddd;
  background: #333;
}

