html, body {
  height: 100%;
  margin: 0;
}

body {
  font-family: Arial,Verdana,sans-serif;
  color: #979bcc;
  background-color:#252525;
  
  display: flex;
  justify-content: center;
  align-items: flex-start;
}

main {
  width: 1200px;
  margin-top: 5vh;

  transform: scale(var(--scale));
  transform-origin: top center;
}

.app-title {
  font-family: "Orbitron", sans-serif;
  font-size: 1.6rem;
  font-weight: 600;
  color: #70c6ca;
  text-shadow: 0 0 6px rgba(49,102,187,0.7),
               0 0 12px rgba(138,180,248,0.5);
  letter-spacing: 1px;
}

a:link { color: #ddd; text-decoration: none }
a:visited { color: #ddd }
a:hover { color: #fff }
a:active { color: #fff }

button {
  cursor: pointer;
  padding: 5px;
  background-color: #4b4b4b;
  color: #ddd;
  border: 0;
  border-radius: 5px;
  font-size: 16px;
}

input {
  background-color: #333;
  border: 0;
  color: white;
}

/* Haxx to get Chrome to put a dark background on a password input */
input:-webkit-autofill {
  background-color: #333 !important;
  -webkit-box-shadow: 0 0 0px 1000px #333 inset !important;
  -webkit-text-fill-color: #979bcc !important;
  border: 0 !important;
}

.select2-container--default .select2-selection--multiple {
  background-color: #333 !important;
}

.error {
  color: #d77777;
}

.day-date,
.name {
  font-size:12px
}

.not-today {
  background-color:#361616;
}

.container {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap; /* not strictly needed for column layout but good practice */
  min-width: 600px;
}

header.header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 15px;
  margin-bottom: 10px;
  margin-right: 10px;
  max-width: 1150px;
}

.title {
  font-style:italic;
  font-weight:700
}

.day-date {
  display: flex;
  align-items: center;
  gap: 5px;
}

.time {
  margin: 5px;
  line-height: 13px;
  font-size: 15px;
  min-width: 60px;
}

.entry,
.time-row {
  display: flex;
  flex-wrap: nowrap;
}

.entry {
  width: 1200px;
}

.entry:hover {
  background-color:#334642
}

.entry:hover .delete {
  visibility: visible;
}

.tag {
  visibility: hidden;
  margin-left: 5px;
  margin-bottom: 2px;
  padding: 0 2px 0 1px;
  border: 1px solid #807a7a;
  border-radius: 3px;
  background-color: #333;
}

.tag.has-tags {
  visibility: visible;
}

.tag.open {
  visibility: visible;
  color: white;
}

.entry:hover .tag {
  visibility: visible;
  cursor: pointer;
}

.dragging {
  opacity: 0.5;
  pointer-events: none;
}

.drag-handle {
  cursor: grab;
  color: #999;
  padding: 0 3px;
  font-size: 14px;
  height: 16px;
  margin-top: 4px;
  visibility: hidden;
  user-select: none;
}

.drag-handle:active {
  cursor: grabbing;
}

.entry:hover .drag-handle {
  visibility: visible;
}

.entry.drag-over {
  background-color: #3a4a60 !important;
}

.delete {
  cursor: pointer;
  color: #fff;
  background-color:#551c1c;
  border:0;
  border-radius:3px;
  padding:0 2px;
  font-size: 14px;
  height: 16px;
  margin-top: 4px;
  visibility: hidden;
}

.name {
  width:380px;
  height:20px;
  border-left:0;
  border-right:0;
  border-top:0;
  border-bottom:1px solid #9d9d9d;
  background-color:rgba(0,0,0,0);
  color: #979bcc;
  flex-shrink: 0;
}
.s,
.totalled {
  margin-top:4px;
  height:10px;
}
.slots {
  display: flex;
  flex-direction: row;
  padding-right: 10px;
  gap: 0;
  flex-shrink: 0;
}
.slots .s:nth-child(4n+1) {
  margin-left: 10px;
}

.s {
  width: 4px;
  height: 10px;
  border-radius: 5px;
  border:2px solid #646060
}
.s.sel {
  border:2px solid #6eee82;
  background:#4f8a46;
}
.s.now {
  border:2px solid #ff7772
}
.s.now.sel {
  border:2px solid #ff7772
}
.s:hover {
  border-color:6eee82;
}

.time-row {
  display: flex;
  flex-direction: row;
  flex-shrink: 0;
  margin-left:400px;
  font-size:10px
}

.time-row .hour {
  width:42px;
  text-align: left;
  flex-shrink: 0;
}

.publish,
.time-nav {
  cursor: pointer;
  font-weight: 700;
  color: #fff;
  background-color:#549b58;
  border:0;
  border-radius:3px;
  padding: 4px;
}

.time-nav,
.time-nav:visited,
.time-nav:hover,
.time-nav:active {
  text-decoration: none;
}

.date {
  margin-left: 3px;
  cursor: pointer;
}

.date input[type="date"] {
  color: #979bcc;
  background-color: #333;
  border: 0;
  border-radius: 6px;
  padding: 5px;
}

.totalled {
  margin-left: 3px;
  min-width: 4px;
  border:2px solid #666;
}

.totalled.sel {
  background:#979bcc
}

.time-total-row {
  display: flex;
}

.time-total {
  margin-left: 1090px;
  min-width: 60px;
}

.p-4 {
  padding: 4px;
}

.account-strip {
  margin-top: 10px;
  margin-bottom: 10px;
  background-color: #333;
  padding: 5px;
  border-radius: 6px;
  width: 1140px;
  font-size: 12px;
  display: flex;
  align-items: center;
}

.account-strip form {
  margin-left: auto;
}

.account-strip button {
  font-size: 12px;
}

.report-table {
  width: 100%;
  border-collapse: collapse;
}

.report-table th,
.report-table td {
  padding: 4px 8px;
}

.report-table tbody tr:nth-child(even) {
  background-color: rgba(255, 255, 255, 0.04);
}

.report-table tbody tr.report-date-start:not(:first-child) td {
  padding-top: 22px;
}

.account-panels {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  gap: 20px;
  margin-left: 30px;
  margin-right: 30px;
  margin-top: 30px;
}

.heading {
  display: flex;
  justify-content: center;
}

.account-panels .account-option {
  border: 1px solid #666;
  border-radius: 8px;
  padding: 10px;
  background-color: #333;
  flex: 1;
  min-width: 260px;
  max-width: 420px;
}

.account-panels .account-option:hover {
  background-color: #353535;
  border: 1px solid #777;
}

.account-option .button-box {
  margin-top: 50px;
  margin-bottom: 30px;
  display: flex;
  justify-content: center;
}

.account-option button {
  padding: 10px 20px 10px 20px;
}

.account-option button:hover {
  background-color: #6e6e6e;
}

.account-return-link {
  margin-top: 50px;
  margin-left: 50px;
  margin-right: 50px;
  background-color: #333;
  padding: 5px;
  border-radius: 6px;
  text-align: center;
}

.modal {
  background-color: #252525;
}

/* spacing and layout */

.flex {
  display: flex;
}

.flex-center {
  justify-content: center;
}

.flex-between {
  justify-content: space-between;
}

/* fix label width and make inputs take all space after labels */
.form-row {
  display: flex;
  align-items: center;
  margin-top: 10px;
}

.form-row input {
  flex: 1;
  margin-left: 30px;
}

.form-row label {
  width: 180px;
}
/* ------------------ */

.tags-row {
  margin: 5px 0 20px;
  padding: 10px 0 10px 5px;
  font-size: 12px;
  background-color: #1a1a1a;
  width: 1140px;
  display: flex;
  align-items: center;
}

.tags-row span:last-child {
  margin-left: auto;
  /* padding-right: 20px; */
}

.tags-row label {
  margin-left: 10px;
}

.select2-results {
  font-size: 12px;
}

/* Dark mode for Select2 */

.select2-container--default {
  min-width: 200px !important;
}

/* Dropdown */
.select2-container--default .select2-dropdown {
  background-color: #1e1e1e;
  border: 1px solid #444;
  color: #eee;
}

.select2-container--default .select2-results__options {
  scrollbar-color: #555 #1e1e1e;
}

.select2-container--default .select2-results__option {
  background-color: #1e1e1e;
  color: #eee;
  padding: 6px 12px;
  cursor: pointer;
}

.select2-container--default .select2-results__option--highlighted {
  background-color: #333;
  color: #fff;
}

.select2-container--default .select2-results__option--selected {
  background-color: #2a2a2a;
  color: #fff;
}

.select2-container--default .select2-search--dropdown {
  background-color: #1e1e1e;
}

.select2-container--default .select2-search__field {
  background-color: #2a2a2a;
  border: 1px solid #555;
  color: #eee;
}

/* Closed input box */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  background-color: #1e1e1e;
  border: 1px solid #444;
  color: #eee;
}

.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
  color: #eee;
}

/* Tags/choices inside the box */
.select2-container--default .select2-selection__choice {
  background-color: #2a2a2a !important;
  border: 1px solid #555 !important;
  color: #eee !important;
}

/* Remove button on tags */
.select2-container--default .select2-selection__choice__remove {
  background-color: transparent !important;
  color: #bbb !important;
  margin-right: 4px;
  border: none;
  padding: 0 4px;
  cursor: pointer;
}

.select2-container--default .select2-selection__choice__remove:hover {
  color: #fff !important;
  background: #555;
}

/* Text inside tags */
.select2-container--default .select2-selection__choice__display {
  background-color: transparent !important;
  color: #eee !important;
}

/* Editable tag category names */

h2[contenteditable="true"] {
  border: 1px dashed transparent;
  padding: 2px 4px;
  width: 30%;
  cursor: pointer;
}

h2[contenteditable="true"]:focus {
  outline: none;
  border-color: #666;
  background: #222;
  color: #fff;
  cursor: auto;
}

.tags-index input {
  margin: 3px 0 3px 3px;
  padding: 2px;
  cursor: pointer;
}

.tags-index input:focus {
  cursor: auto;
}

.tags-index button {
  padding-top: 0;
  padding-bottom: 0;
  margin-left: 1px;
}

.tags-index button.add-tag {
  margin: 10px 100% 0 2px;
  width: 50px;
  padding: 5px;
}

.tags-index button.add-tag-category {
  margin: 20px 100% 0 2px;
  width: 80px;
  padding: 5px;
}

.tags-index button:hover {
  color: #fff;
}

/* ------------------ */

.p-8 {
  padding: 8px;
}

.pl-20 {
  padding-left: 20px;
}

.pl-30 {
  padding-left: 30px;
}

.pr-20 {
  padding-right: 20px;
}

.pr-30 {
  padding-right: 30px;
}

.ml-5 {
  margin-left: 5px;
}

.ml-30 {
  margin-left: 30px;
}

.mr-20 {
  margin-right: 20px;
}

.mt-5 {
  margin-top: 5px;
}

.mt-10 {
  margin-top: 10px;
}

.mt-15 {
  margin-top: 15px;
}

.mt-30 {
  margin-top: 30px;
}

.mb-50 {
  margin-bottom: 50px;
}

.w-50pc {
  width: 50%;
}

.w-70pc {
  width: 70%;
}