html {
  position: relative;
  min-height: 100%;
}

body {
  background-color: var(--color-white);
}

body.auth2fa {
  padding-bottom: 120px;
}

main>.container {
  padding-top: 72px;
  padding-right: 15px;
  padding-bottom: 0px;
  padding-left: 15px;
}

main>.container label {
  margin: .5rem 0px;
}

.footer {
  background-color: rgba(var(--color-grey), 1);
}

.footer>.container {
  padding-right: 15px;
  padding-left: 15px;
}

.footer img {
  max-width: 200px;
  width: 100%;
}

.app_version {
  margin: 5px auto;
  text-align: center;
  font-size: 12px;
}

code {
  font-size: 80%;
}

.has_pagination span {
  padding: 5px 10px;
  color: #333;
  display: inline-block;
}

.has_pagination span.active {
  background-color: var(--primary-color);
  border-radius: 5px;
  color: white;
}

.has_pagination span.inactive {
  cursor: pointer;
}

.has_pagination span.first-page,
.has_pagination span.last-page {
  padding: 0px;
}

.has_pagination span.first-page svg,
.has_pagination span.last-page svg {
  width: 42px;
  height: 42px;
  color: var(--primary-color);
  padding: 5px 0px;
  text-align: center;
}

.alert.alert-danger ul {
  list-style-type: none;
}

.card-brand {
  width: 40px;
}

.form {
  width: 100%;
  max-width: 520px;
  padding: 0px;
  margin: 0 auto;
}

.form .input-icon {
  padding-right: 40px;
}

.form .icon {
  position: absolute;
  right: 16px;
  top: 33px;
  height: 36px;
  width: 40px;
  background-color: #CCC;
}

.form .icon i {
  display: block;
  font-size: 1.2rem;
  text-align: center;
  line-height: 2.4rem;
}

.form .password-helper {
  font-size: 12px;
}

.btn-company {
  background-color: var(--primary-color);
  border: 1px solid var(--primary-color);
  color: var(--color-white);
}

.btn-company:hover {
  background-color: var(--primary-color);
  color: var(--color-dark-grey);
  border: 1px solid var(--color-orange);
}

.background-color-company {
  background-color: var(--primary-color);
}

.border-color-company {
  border-color: var(--primary-color);
}

.text-color-company {
  color: var(--primary-color);
}

.btn-generate-invoice,
.btn-generate-receipt {
  margin: auto;
  max-width: 220px;
  color: var(--color-white);
  background-color: var(--primary-color);
  display: none;
}

/* ===== 
AUTH 
====== */
.auth {
  margin-bottom: 125px;
}

.auth2fa .form-area {
  max-width: 520px;
  margin: auto;
}

.auth .logo,
.auth2fa .logo {
  max-height: 92px;
  height: auto;
  width: 100%;
  max-width: 420px;
}

.auth h2,
.auth2fa h2 {
  font-size: 27px;
  margin: 40px 0px 40px 0px;
  text-transform: uppercase;
}

.auth2fa p {}

.auth2fa #code {
  font-size: 16px !important;
}

.auth .bank-card,
.auth2fa .bank-card {
  max-width: 480px;
  width: 100%;
  border-radius: 20px;
  border: 2px solid var(--primary-color);
}

.auth a,
.auth2fa a {
  color: var(--primary-color);
  text-decoration: none;
  display: block;
}

.auth a:hover,
.auth2fa a:hover {
  color: #333;
}

.auth .footer,
.auth2fa .footer {
  position: absolute;
  left: 0px;
  bottom: 0px;
  width: 100%;
  height: 125px;
}

.auth .footer ul,
.auth2fa .footer ul {
  margin: 0px;
}

.auth2fa .qrcode {
  max-width: 320px;
}

.form-control:focus,
textarea:focus,
input[type="text"]:focus,
input[type="password"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="time"]:focus,
input[type="week"]:focus,
input[type="number"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="search"]:focus,
input[type="tel"]:focus,
input[type="color"]:focus {
  border-color: var(--primary-color);
  box-shadow: 0 0 5px 1px var(--color-focus);
  outline: 0 none;
}

body.auth-feedback .alert {
  max-width: 420px;
  margin: 50px auto 40px auto;
}

body.auth-feedback .alert-success a {
  text-transform: uppercase;
  font-size: 22px;
  font-weight: bold;
  padding: 10px;
  background-color: var(--primary-color);
  color: var(--color-white);
  display: block;
  border-radius: 20px;
  width: 200px;
  margin: 20px auto;
}

body.auth-feedback .opt-enabled {}

body.auth-feedback .opt-enabled .icon-google-authenticator {
  border-radius: 20px;
}

body.auth-feedback .opt-enabled .download-app {
  margin: auto;
}

body.auth-feedback .opt-enabled .download-app td {
  padding: 10px;
  text-align: center;
  font-size: 14px;
}

body.auth-feedback .opt-enabled .download-app img {
  width: 50px;
}

body.auth-feedback .opt-enabled img {
  width: 120px;
  display: block;
  margin: auto;
}

/* ===== 
NAVBAR
====== */
.navbar-dark .navbar-nav .nav-link,
.navbar-dark .navbar-nav .active>.nav-link,
.navbar-dark .navbar-nav .nav-link.active,
.navbar-dark .navbar-nav .nav-link.show,
.navbar-dark .navbar-nav .show>.nav-link {
  color: var(--color-white);
  margin: 0px 10px;
}

.navbar-dark .navbar-nav .nav-item.active .nav-link {
  border-bottom: 4px solid #ffffff;
}

.navbar .logo {
  border-radius: 10px;
  height: 72px;
  margin: 0px 20px 0px 0px;
}

.dropdown-item:focus,
.dropdown-item:hover {
  background-color: #EDEDED;
}

/* ====
TABLES
===== */
.table thead th,
.table-primary tbody+tbody,
.table-primary td,
.table-primary th,
.table-primary thead th {
  background-color: var(--color-grey);
  border-color: var(--color-grey);
  color: var(--color-dark-grey);
}

.table-tickets tbody td span {
  display: block;
}

.table.travels tr td {
  border-bottom: 1px solid var(--color-grey) !important;
  vertical-align: middle;
  font-size: 16px;
}

.table.travels tr td span {
  display: block;
}

.table.travels tr td span.label,
.table.travels tr td span.price {
  display: inline-block;
  margin: 5px 0px;
}

.table.travels span.refunded {
  background-color: var(--color-green);
  color: var(--color-white);
  padding: 5px;
  margin: 5px;
  display: inline-block;
  text-align: center;
}

.table.travels tr td span.psp-aggregation-id {
  font-style: italic;
  font-size: 12px;
}

.table.travels tr td .btn {
  margin: 10px 0px;
  background-color: var(--color-white);
  display: block;
  min-width: 190px;
  height: 44px;
}

.table.invoices tr td .btn {
  margin: 0px 5px;
  background-color: var(--color-white);
  color: #000 !important;
  color: var(--primary-color);
  border-color: var(--primary-color);
}

.table.invoices tr td .btn:hover {
  background-color: var(--color-white);
}

.table.travels tr.selected {
  background-color: var(--color-yellow-light);
}

.table.travels tr.rejected {
  background-color: var(--color-red-light);
}

.table.travels tr.accepted {
  background-color: var(--color-green-light);
}

.table.table.travels td.date span {
  display: block;
  padding: 2px 0px 0px 30px;
  text-align: left;
}

.table.table.travels td.date span svg {
  margin: 0px 5px 0px 0px;
}

.table.travels .actions svg {
  margin: 0px 5px;
}

.table.travels tfoot th {
  padding: 20px 0px 0px 0px;
}

.modal.addedit input::-webkit-input-placeholder,
.modal.addedit textarea::-webkit-input-placeholder {
  /* Chrome/Opera/Safari */
  font-size: 14px;
}

.modal.addedit input::-moz-placeholder,
.modal.addedit textarea::-moz-placeholder {
  /* Firefox 19+ */
  font-size: 14px;
}

.modal.addedit input:-ms-input-placeholder,
.modal.addedit textarea:-ms-input-placeholder {
  /* IE 10+ */
  font-size: 14px;
}

.modal.addedit input:-moz-placeholder,
.modal.addedit textarea:-moz-placeholder {
  /* Firefox 18- */
  font-size: 14px;
}

.modal.addedit label span {
  color: red;
  font-size: 12px;
}

.modal.details .table {
  margin-bottom: 0px;
}

.modal.dispute textarea {
  width: 100%;
  outline: none;
  resize: none;
  overflow: auto;
  border: 1px solid var(--color-grey);
}

.modal.dispute .comments {
  display: flex;
  flex-direction: column;
  padding: 10px;
}

.modal.dispute .comments h1 {
  display: flex;
  flex-direction: column;
  padding: 5px;
  font-size: 32px;
}

.modal.dispute .comments .comment {
  border-radius: 20px;
  padding: 8px 15px;
  margin-top: 15px;
  margin-bottom: 5px;
  display: block;
}

.modal.dispute .comments .comment span {
  display: block;
}

.modal.dispute .comments .comment span.date {
  font-size: 12px;
  margin: 5px 0px;
}

.modal.dispute .comments .comment span.user {
  font-size: 12px;
  margin: 5px 0px;
}

.modal.dispute .comments .comment span.message {
  font-size: 18px;
}

.modal.dispute .comments .comment.yours {
  align-items: flex-start;
  margin-right: 50%;
  background-color: #eee;
  position: relative;
}

.modal.dispute .comments .comment.yours:before {
  content: "";
  position: absolute;
  z-index: 0;
  bottom: -18px;
  left: 16px;
  height: 20px;
  width: 20px;
  background: #eee;
  border-bottom-right-radius: 15px;
}

.modal.dispute .comments .comment.yours:after {
  content: "";
  position: absolute;
  z-index: 1;
  bottom: -19px;
  left: 16px;
  width: 10px;
  height: 20px;
  background: var(--color-white);
  border-bottom-right-radius: 10px;
}

.modal.dispute .comments .comment.mine {
  align-items: flex-end;
  color: #000;
  margin-left: 50%;
  background-color: var(--color-red);
  background-attachment: fixed;
  position: relative;
}

.modal.dispute .comments .comment.mine:before {
  content: "";
  position: absolute;
  z-index: 0;
  bottom: -20px;
  right: 53px;
  height: 20px;
  width: 20px;
  background-color: var(--color-red);
  background-attachment: fixed;
  border-bottom-left-radius: 15px;
}

.modal.dispute .comments .comment.mine:after {
  content: "";
  position: absolute;
  z-index: 1;
  bottom: -20px;
  right: 52px;
  width: 10px;
  height: 20px;
  background: white;
  border-bottom-left-radius: 10px;
}

.modal.dispute .user-info span {
  display: block;
  padding: 2px 5px;
}

.modal.dispute .user-info.yours span svg {
  margin: 0px 20px 0px 0px;
}

.modal.dispute .user-info span svg {
  margin: 0px 10px 0px 0px;
  transform: scale(1.2);
}

.modal.dispute .user-info.mine {
  text-align: right;
}

.modal.dispute .user-info.yours {
  text-align: left;
}

.navbar {
  box-shadow: 0px 4px 2px 0px rgba(0, 0, 0, 0.2);
}

.overlay {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1040;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}

.overlay .fa-spin {
  position: absolute;
  top: 50%;
  left: 50%;
  font-size: 55px;
  color: white;
}

.modal-loader {
  height: 200px;
  text-align: center;
  vertical-align: middle !important;
}

.modal-loader .fa-spin,
.modal-loader .fa-sync {
  font-size: 32px;
}

.btn:hover {
  box-shadow: 0px 2px 1px 1px #999;
  border: 1px solid var(--color-dark-grey) !important;
  color: var(--color-white);
}

.btn-primary {
  border-color: 1px solid var(--primary-color);
  background-color: var(--primary-color) !important;
  color: var(--color-white);
}

.btn-primary:hover {
  border-color: 1px solid var(--color-orange);
  color: var(--color-white);
}

.btn-debit {
  color: var(--color-white);
  background-color: var(--color-red) !important;
}

.btn-debit:disabled {
  color: var(--color-white);
  background-color: var(--color-dark-grey) !important;
}

.btn-outline-info {
  color: var(--color-dark-grey) !important;
  background-color: var(--color-white) !important;
  border: 1px solid var(--color-grey) !important;
}

.btn-outline-info:hover {
  border: 1px solid var(--color-dark-grey) !important;
}

.btn-outline-danger {
  color: var(--color-red);
}

.btn-outline-danger:hover {
  color: var(--color-red) !important;
}

.btn-outline-success:hover {
  color: var(--color-white);
  background-color: var(--color-green) !important;
}

.dispute-opened {
  color: var(--color-white);
  background-color: var(--color-orange) !important;
  border: 1px solid var(--color-orange);
}

.dispute-opened:hover {
  color: var(--color-white) !important;
  background-color: var(--color-orange) !important;
}

.btn-dispute[data-status="accepted"] {
  color: var(--color-white);
  background-color: var(--color-green) !important;
}

.btn-dispute[data-status="accepted"]:hover {
  color: var(--color-white);
}

.btn-dispute[data-status="rejected"] {
  color: var(--color-white);
  background-color: var(--color-red) !important;
}

.btn-dispute[data-status="rejected"]:hover {
  color: var(--color-white) !important;
}

.actions {
  position: relative;
}

.invoiced {
  text-align: left;
  margin: 10px 0px !important;
  padding: 4px 8px;
  color: #333;
  display: inline-block !important;
}

.invoiced:hover {
  color: var(--color-dark-grey) !important;
}

.invoiced i {
  font-size: 25px;
  color: var(--color-green);
  margin-top: 5px;
}

.invoice-id {
  font-size: 12px;
  display: inline-block !important;
  margin-left: 10px;
}

.invoice-preview,
.receipt-preview {
  margin: 100px auto 0px auto;
  max-width: 800px;
  width: 100%;
}

.invoice-preview td,
.receipt-preview td {
  padding: 10px;
}

.invoice-preview table,
.receipt-preview table {
  width: 100%;
}

.receipt-preview .payments tr td {
  padding: 10px;
  vertical-align: top;
}

.receipt-preview .tickets {
  margin: 0px 0px 20px 0px;
  padding: 0px;
  width: 100%;
  text-align: center;
}

.receipt-preview table.tickets th.bg {
  background-color: var(--color-grey);
  color: #333;
}

.receipt-preview table.tickets td.bg {
  background-color: var(--primary-color-alpha);
  color: #333;
  font-weight: bold;
}

.receipt-preview table.tickets th,
.receipt-preview table.tickets td {
  border: 1px solid #333;
}

.invoice-preview .right,
.receipt-preview .right {
  text-align: right;
}

.invoice-preview .left,
.receipt-preview .left {
  text-align: left;
}

.imvoice-preview .align-top,
.receipt-preview .align-top {
  vertical-align: top;
}

.invoice-preview table th,
.receipt-preview table th {
  color: var(--color-white);
}

.invoice-preview table th,
.invoice-preview table td,
.receipt-preview table th,
.receipt-preview table td {
  padding: 10px;
  border: 1px dotted var(--color-grey);
  border-collapse: collapse;
}

.invoice-preview .no-background,
.receipt-preview .no-background {
  background-color: var(--color-white);
}

.invoice-preview .background-1,
.receipt-preview .background-1 {
  background-color: var(--color-grey);
}

.invoice-preview .background-2,
.receipt-preview .background-2 {
  background-color: var(--primary-color);
  color: var(--color-white);
}

.invoice-preview td span {
  font-size: 14px;
  display: block;
}

.receipt-preview td {
  font-size: 14px;
}

.invoice-preview .no-background strong,
.receipt-preview .no-background strong {
  color: black !important;
}

.bootbox.service-not-unavailable .bootbox-body {
  text-transform: uppercase;
  text-align: center;
  font-size: 22px;
}

.bootbox.service-not-unavailable .bootbox-close-button {
  display: none;
}

.bootbox.service-not-unavailable .modal-body {
  padding: 2rem;
}

/*
ANIMATIONS
*/
@keyframes blink {
  0% {
    background: rgba(0, 0, 0, 0.05);
  }

  50% {
    background: var(--color-yellow);
  }

  100% {
    background: rgba(0, 0, 0, 0.05);
  }
}

.blink {
  animation: blink 3s ease-in-out 0s;
}

/*
=== PAYMENT
*/
.rounded {
  border-radius: 1rem;
}

.nav-pills .nav-link {
  color: #555;
}

.nav-pills .nav-link.active {
  color: white;
}

input[type="radio"] {
  margin-right: 5px;
}

.bold {
  font-weight: bold;
}

.error {
  border: 1px solid var(--color-red);
}

.card-header p {
  background-color: var(--color-blue) !important;
  color: var(--color-white);
  margin-bottom: 0px !important;
}

.card-footer {
  background-color: transparent;
}

#payline_feedback .container {
  margin: 0px;
  padding: 0px;
}

#payline_redirect {
  display: none;
}

#payline_feedback h1,
#payline_redirect h1 {
  font-size: 22px;
}

#payline_feedback .message,
#payline_redirect .message {
  font-size: 22px;
  text-align: center;
  font-weight: bold;
  text-transform: uppercase;
}

/*
=== CUSTOM CALENDAR WIDGET
*/
#ui-datepicker-calendar td a {
  background: url("../img/transparent.gif") repeat 0 0 var(--primary-color);
  text-align: center;
}

#ui-datepicker-div .ui-widget-header {
  background: url("../img/transparent.gif") repeat 0 0 var(--primary-color);
  color: var(--color-white);
}

#ui-datepicker-div .ui-state-default {
  background: url("../img/transparent.gif") repeat 0 0 var(--color-grey);
  color: var(--color-dark-grey);
  border: 1px solid var(--color-grey);
}

#ui-datepicker-div .ui-state-highlight {
  color: var(--color-dark-grey);
  border: 1px solid var(--color-grey);
}

#ui-datepicker-div .ui-state-active {
  background: url("../img/transparent.gif") repeat 0 0 #ffffff;
}

/*
=== MEDIA QUERY 
*/

/* Small devices (landscape phones, 576px and min) */
@media (max-width: 576px) {

  input.hasDatepicker,
  select {
    font-size: 16px !important;
  }

  .form-signin {
    padding: 0px !important;
  }

  main>.container {
    padding-left: 10px;
    padding-right: 10px;
  }

  main>.container h1 {
    margin-top: 0px !important;
  }

  .auth .form-control {
    font-size: 16px !important;
  }

  .form-control {
    font-size: 12px !important;
  }

  .form-control .empty-label {}

  .table thead th {
    font-size: 14px;
  }

  .table td,
  .table th {
    padding: .3rem !important;
  }

  .table td {
    font-size: 14px !important;
  }

  .table tbody td .card-brand {
    width: 40px !important;
  }

  .table tbody td .card-name {
    display: none !important;
  }

  .table.travels td.date span {
    padding: 2px !important;
    text-align: center !important;
  }

  .table.travels td.date span svg {
    display: block;
    margin: 5px auto !important;
  }

  .table.travels td.paid {
    font-size: 14px !important;
  }

  .table.travels td.paid span.label {
    display: none;
  }

  .table.travels td span.psp-aggregation-id {
    display: none !important;
  }

  .table.travels tr td .btn {
    width: 100px !important;
    max-width: 100px !important;
    min-width: auto !important;
    font-size: 12px;
    text-transform: uppercase;
  }

  .table.travels tr td svg {
    display: none;
  }

  .table.travels tr td .invoiced {
    padding: 0px !important;
    border: 0px !important;
  }

  .table.travels tr td .invoiced span {
    font-size: 10px;
    margin: auto !important;
    text-align: center;
  }

  .table.travels tr td .invoiced i {
    display: block;
    text-align: center;
    font-size: 16px;
    margin-top: 0px;
  }

  .invoice-preview .invoice-logo,
  .receipt-preview .invoice-logo {
    max-width: 200px;
    height: auto;
  }

  .invoice-preview,
  .receipt-preview {
    margin-top: 150px;
    font-size: 12px;
  }

  .invoice-preview td span,
  .receipt-preview td span {
    font-size: 12px;
  }

  .modal-dialog {
    margin: 0px;
  }

  .bootbox-body {
    padding: 10px;
  }

  .modal.show .modal-dialog {
    margin: 10px;
  }

  .modal-body {
    padding: 0.2rem;
    padding: 10px;
  }

  .modal.dispute .comments .comment {
    margin-top: 25px;
  }

  .modal.dispute .comments .comment.yours {
    margin-right: auto;
  }

  .modal.dispute .comments .comment.mine {
    margin-left: auto;
  }

  .navbar {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
  }

  .navbar-brand img {
    margin: auto !important;
    width: 80%;
    height: auto !important;
  }

  .navbar-brand {
    margin-right: 0px;
    display: inline;
  }

  .table.travels span.refunded {
    padding: 2px;
    margin: 2px;
    font-size: 11px;
  }
}

/* Medium devices (tablets, 820px and min) */
@media (max-width: 820px) {
  .table.travels tr td {
    padding: 0.5rem;
  }

  .table.table.travels td.date span {
    display: block;
    padding: 2px;
    text-align: left;
  }

  .table.table.travels td.date span svg {
    margin: 0px 5px 0px 0px;
  }

  .navbar-brand img {
    margin: auto !important;
  }
}

/* Large devices (desktops, 992px and min) */
@media (max-width: 992px) {
  main>.container {
    max-width: 880px;
  }

  .modal.dispute .comments .comment {
    margin-top: 25px;
  }

  .modal.dispute .comments .comment.yours {
    margin-right: auto;
  }

  .modal.dispute .comments .comment.mine {
    margin-left: auto;
  }
}

/* Extra large devices (large desktops, 1200px and min) */
@media (max-width: 1200px) {
  main>.container {}
}