/* typo */

h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: unset;
  line-height: 1.38;
}

/* layout */

.backend-wrapper {
  max-width: 100vw;
  overflow: hidden;
}

#canvas {
  display: block;
  padding: 20px 50px 20px 50px;
  border-left: solid 1px var(--color-secondary-light-15);
  width: 100%;
  overflow: hidden;
}

#main {
  padding: 0;
  min-height: 100%;
}

/* admin menu */

#admin-menu {
  background: none;
}

.admin-menu-inner .flex-wrapper {
  flex-direction: column;
}

.admin-menu-groups {
  flex-direction: column;
  margin: 20px 0 0;
}

.admin-menu-groups .admin-menu-group .btn-group {
  display: block;
}

.admin-menu-groups .admin-menu-group .btn-group .dropdown-toggle {
  display: none;
  width: 100%;
}

.admin-menu-groups .admin-menu-group .btn-group .dropdown-toggle::after {
  display: none;
}

.admin-menu-groups .admin-menu-group .dropdown-menu,
.admin-menu-groups .admin-menu-group .dropdown-menu .dropdown-item {
  display: block;
  position: relative;
  padding: 0;
  border: 0;
  margin: 0 0 5px;
  background: none;
}

.admin-menu-group-logout {
  align-self: end;
}

/* login form */

.page-update-password #main,
.page-admin-login #main {
  display: flex;
  align-items: center;
}

/**/

form .form-label {
  font-weight: bold;
}

form .is-invalid > .form-label {
  color: var(--color-danger) !important;
}

form .form-check-input {
  background: white;
}

form textarea {
  min-height: 210px;
}

form .ck textarea {
  min-height: 0;
}

.d-flex textarea {
  flex-grow: 1;
  margin: 5px 0px 10px;
}

.wrapper .btn-remove {
  position: absolute;
  right: 10px;
  top: 10px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 200ms;
}

.wrapper:hover .btn-remove {
  pointer-events: initial;
  opacity: 1;
}

fieldset {
  padding: 30px 30px 20px;
  border: solid 1px var(--color-grey);
  border-radius: var(--br-main);
  margin-bottom: 30px;
  position: relative;
  margin-top: 40px;
}

fieldset > legend {
  position: absolute;
  float: none;
  transform: translateY(-50%) translateX(-5px);
  background: white;
  display: inline-block;
  width: auto;
  font-size: var(--fs-h5);
  top: 0;
  font-weight: bold;
  padding: 0 5px;
  color: var(--color-secondary-light);
}

fieldset > [data-bs-toggle="collapse"] {
  margin: 0;
}

fieldset > *:last-child {
  margin-bottom: 0 !important;
}

fieldset.pa-inactive {
  opacity: .5;
}

.translation-indicator {
  display: none;
}

/* multi-select  */

.multi-select-selection {
  min-height: 40px;
  max-height: 400px;
  overflow: auto;
  resize: vertical;
}

.multi-select-item {
  margin: 3px 3px;
}

.multi-select-selection .multi-select-item.is-selected {
  background: rgba(0 0 0 / 3%);
}

.multi-select-item.is-selected:hover {
  background: rgba(0 0 0 / 6%);
}

.select-indicator {
  border: 0;
  background: 0;
  outline: 0;
  padding: 0;
  line-height: 1;
}

.select-indicator .symbol {
  height: 16px;
  font-size: inherit;
  line-height: inherit;
  cursor: pointer;
}

.select-indicator .symbol.indicator-remove,
.select-indicator .symbol.indicator-check,
.multi-select-item.is-selected .select-indicator .symbol.indicator-add,
.multi-select-item.is-selected:hover .select-indicator .symbol.indicator-check {
  display: none;
}

.multi-select-item.is-selected .select-indicator .symbol.indicator-check,
.multi-select-item.is-selected:hover .select-indicator .symbol.indicator-remove {
  display: inline-block;
}

.multi-select-selected {
  line-height: 1.5;
  min-height: 36px;
}

.multi-select-selected .multi-select-item {
  cursor: move;
}

.sortable-placeholder {
  line-height: 1.5;
  min-height: 27px;
  opacity: .8;
  margin: 3px 3px;
}

/* inline references */

.inline-reference-wrapper {}

.inline-reference-wrapper ul.inline-reference-references {
  list-style: none;
  padding: 0;
  margin: 0;
}

.inline-reference-wrapper .inline-reference-item-wrapper {
  display: flex;
  flex-wrap: nowrap;
  gap: 10px;
}

.inline-reference-wrapper .inline-reference-item-wrapper > .drag-indicator {
  cursor: grab;
}

.inline-reference-wrapper .inline-reference-item-wrapper > .drag-indicator .symbol {
  margin-top: 15px;
}

.inline-reference-wrapper .inline-reference-references-list-item {
  margin-bottom: 10px;
}

.inline-reference-wrapper .inline-reference-references .inline-reference-references-list-item:last-child {
  margin-bottom: 0;
}

.inline-reference-item-wrapper.is-invalid .accordion-header,
.inline-reference-item-wrapper.is-invalid .accordion-header .accordion-button {
  color: var(--color-danger) !important;
}

/* tables */

.backend table thead th {
  white-space: nowrap;
}

.backend table td,
.backend table th {
  padding: 10px 20px;
}

.backend table td.td-actions {
/*  padding-left: 0;*/
}

.td-actions,
.td-auto {
/*  display: flex;*/
  width: 1%;
}

.w-content {
  width: fit-content;
}

.dropdown-item.active, .dropdown-item:active {
  background: none;
}

.backend table > :not(:last-child) > :last-child > * {
  border-color: var(--color-secondary-light-15);
}

.table > :not(caption) > * > * {
  border-color: var(--color-secondary-light-15);
}

td .symbol,
th .symbol {
  cursor: default;
}

a > .symbol,
a > .combo-icon .symbol,
button > .symbol,
button > .combo-icon .symbol {
  cursor: pointer;
}

.backend table label {
  cursor: pointer;
}

/* due contracts tables */

.table-due-contracts {
  width: 100%;
}

.table-due-contracts .contract-product {
  width: 10%;
}

.table-due-contracts .contract-name {
/*  width: 20%;*/
}

.table-due-contracts .contract-unit-price {
  width: 12%;
}

.table-due-contracts td.contract-unit-price {
  text-align: right;
}

.table-due-contracts .contract-named-interval {
  width: 11%;
}

.table-due-contracts .contract-billed-until {
  width: 10%;
}

.table-due-contracts .contract-due-by {
  width: 11%;
}

.table-due-contracts .contract-total-price {
  width: 11%;
}

.table-due-contracts td.contract-total-price {
  text-align: right;
}

.table-due-contracts tr {
  position: relative;
}

.table-due-contracts .form-controls {
  width: 0%;
  position: absolute;
  border: 0;
  right: 100%;
}

.table-due-contracts .form-controls input {
/*  transform: translateX(-20px);*/
}

.price {
  white-space: nowrap;
}

/* invoices */

.invoice-positions-items-wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
}

.invoice-positions-items-wrapper > * {
  width: 100%;
  flex-basis: 100%;
}

/* accordions */

.accordion .accordion-body {
  border-top: solid 1px var(--color-secondary-light-15);
}

.date-submissions .accordion .accordion-body {
  padding: 0;
}

.accordion .accordion-item {
  border-radius: var(--br-main);
  overflow: hidden;
  position: relative;
}

.accordion .accordion-item:has(.dropdown-toggle.show) {
  overflow: visible;
}

.accordion:not(.form-group-accordion) .accordion-item:before,
.accordion-button:not(.form-group-accordion-button):before {
  position: absolute;
  top: 0;
  left: 0;
  background: var(--color-primary);
  width: 10px;
  height: 100%;
  content: "";
  display: block;
}

.accordion-header {
  cursor: pointer;
}

.accordion-button {
  padding: var(--btn-py) var(--btn-px);
  border: 0;
  position: relative;
}

.accordion-button:not(.collapsed) {
  background: none;
  color: var(--color-secondary);
  box-shadow: none;
}

.accordion-button:not(.collapsed)::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

.date-submissions .accordion .backend-table {
  border-radius: 0;
  box-shadow: none;
  overflow: visible;
  margin-bottom: -1px !important;
}

.inline-reference-item-wrapper .accordion-button::after,
.date-submissions .accordion-button::after {
  margin-left: unset;
}

.accordion-button:focus,
.accordion-button:active {
  border: 0;
  box-shadow: none;
}

.accordion ~ [data-bs-toggle="collapse"] .text-close,
.accordion:has(.collapse.show) ~ [data-bs-toggle="collapse"] .text-expand {
  display: none;
}

.accordion:not(:has(.collapse.show)) ~ [data-bs-toggle="collapse"] .text-expand,
.accordion:has(.collapse.show) ~ [data-bs-toggle="collapse"] .text-close {
  display: block;
}

/**/

.form-group-accordion {
  overflow: visible;
  box-shadow: none;
}

.accordion.form-group-accordion > .accordion-item {
  background: white;
  color: var(--color-secondary);
  box-shadow: 0 0 0 1px var(--color-secondary-light-30);
  padding: 0;
  border-radius: var(--br-main);
  overflow: visible;
  border: 0;
}

.accordion.form-group-accordion .accordion-item .accordion-body > *:last-child {
  margin-bottom: 0 !important;
}

.accordion.form-group-accordion .accordion-item:before {
  display: none;
}

.form-group-accordion .accordion-item .accordion-header {
  border: 0;
  box-shadow: none;
  overflow: hidden;
  background: none;
}

.form-group-accordion .accordion-item .accordion-collapse {
  border-top: solid 1px var(--color-grey);
}

.form-group-accordion .accordion-item .accordion-body {
  padding-left: var(--btn-px);
  padding-right: var(--btn-px);
  border: 0;
}

.form-group-fieldset:has(> .form-group-accordion) {
  margin-top: 80px;
  margin-bottom: 80px;
  padding-bottom: 10px;
}

.form-group-fieldset {
  padding-top: 40px;
}

.form-group-fieldset:has(> .form-group-accordion):has(.collapse.show) {
  padding-bottom: 20px;
}

.form-group-fieldset > legend {
  padding: 0;
  background: none;
}

.accordion-button.form-group-accordion-button {
  background: var(--color-light);
  box-shadow: none;
  white-space: nowrap;
  padding: var(--btn-py) var(--btn-px);
  border: 0;
  font-weight: bold;
  border-radius: var(--br-main) !important;
}

.form-group-accordion > .accordion-item:has(.is-invalid) .accordion-button.form-group-accordion-button {
  color: var(--color-danger);
}

.accordion-button.form-group-accordion-button::after {
  margin-left: 10px;
}

/* icons */

.combo-icon {
  white-space: nowrap;
}

.combo-icon .symbol {
  margin-right: -6px;
}

.combo-icon .symbol:last-child {
  margin-right: -2px;
  text-shadow: 1px 1px white, -1px -1px white, -1px 1px white, 1px -1px white;
  z-index: 5;
}

/* editor */

.ck-powered-by,
.ck-powered-by__label {
  display: none !important;
  height: 0px;
  overflow: hidden !important;
  visibility: hidden !important;
  z-index: -100 !important;
}

.ck-editor__editable_inline:not(.ck-comment__input *) {
  max-height: 500px;
  overflow-y: auto;
}

textarea#address + .ck .ck-editor__editable_inline:not(.ck-comment__input *) {
  max-height: 100px;
}

textarea#description + .ck .ck-editor__editable_inline:not(.ck-comment__input *) {
  max-height: 300px;
}

textarea#additional_info + .ck .ck-editor__editable_inline:not(.ck-comment__input *) {
  max-height: 100px;
}

/* lists */

.link-list-group .list-group-item {
  padding: 0;
  border-color: var(--color-secondary-light-30);
}

.link-list-group .list-group-item:has(+ .active) {
  border-bottom: 0;
}

.link-list-group .list-group-item a:not(.btn) {
  padding: var(--btn-py) var(--btn-px);
  color: var(--color-secondary);
/*  color: var(--color-primary);*/
}

.list-group-item.active {
  background: var(--color-primary-15);
  border-color: var(--color-primary-15);
}

.list-group-item.active a:not(.btn) {
  color: var(--color-secondary);
  font-weight: bold;
}

@media (max-width: 991px) {
  .backend-wrapper {
    flex-direction: column;
  }

  #admin-menu {
    background: var(--color-grey);
  }

  .admin-menu-inner .flex-wrapper {
    flex-direction: row;
  }

  .admin-menu-groups {
    width: 100%;
    order: 3;
    margin: 20px 0 0;
    display: block;
    display: flex;
    align-items: start;
    flex-wrap: wrap;

    display: block;
    columns: 3;
  }

  .admin-menu-inner .navbar-collapse {
    width: 100%;
    order: 3;
  }

  .admin-menu-groups .admin-menu-group {
    box-shadow: 0 0 0 1px inset var(--color-secondary-light-30);
    padding: 5px 10px 5px;
    border-radius: var(--br-main);
    break-inside: avoid;
    margin-bottom: 10px;
  }

  .admin-menu-groups .admin-menu-group.admin-menu-group-logout {
    box-shadow: none;
    text-align: right;
    text-align: end;
    width: fit-content;
  }

  .admin-menu-groups .admin-menu-group .btn-group .dropdown-toggle {
    display: block;
  }

  .admin-menu-groups .admin-menu-group .btn-group {
    display: block;
  }
 
  .admin-menu-groups .admin-menu-group .dropdown-toggle {
    display: block;
    width: 100%;
    background: transparent;
    margin-bottom: 3px;
    box-shadow: none;
    text-align: center;
  }
 
  .admin-menu-groups .admin-menu-group .dropdown-toggle::after {
    display: none;
  }
 
  .admin-menu-groups .admin-menu-group .dropdown-menu,
  .admin-menu-groups .admin-menu-group .dropdown-menu .dropdown-item {
    display: block;
    position: relative;
    padding: 0;
    border: 0;
    margin: 0 0 5px;
    background: none;
    min-width: 0;
  }

  .admin-menu-groups .admin-menu-group .btn {
    width: 100%;
  }

  .admin-menu-groups .admin-menu-group .admin-local-tasks {
    display: block;
  }

  .admin-menu-groups .admin-menu-group.admin-menu-group-logout .btn {
    width: auto;
  }

  .admin-menu-group-logout {
    align-self: end;
  }

  #canvas {
    padding: 20px;
  }
}

@media (max-width: 899px) {
  #canvas {
    padding: 10px;
  }
}

@media (max-width: 599px) {
  .inline-reference-references-list-wrapper {
    padding: 10px !important;
  }

  .inline-reference-wrapper .inline-reference-item-wrapper > .drag-indicator {
    display: none;
  }

  .inline-reference-item .accordion-item .accordion-button .actions .btn-list {
    flex-wrap: wrap !important;
  }

  .backend table td, 
  .backend table th {
    padding: 8px 16px;
  }

  .accordion:not(.form-group-accordion) .accordion-item:before,
  .accordion-button:not(.form-group-accordion-button):before,
  .accordion .accordion-item:before,
  .accordion-button:before,
  .accordion:has(.table-wrapper.show-clone) .table-wrapper:before,
  .restables-clone tbody > tr:first-child > td:first-child:before,
  .date-submissions-table:not(.restables-clone) tbody tr > td:first-child:before {
    width: 7px;
  }
}

@media (max-width: 499px) {
  #canvas {
    padding: 10px;
  }

  .backend table td, 
  .backend table th {
    padding: 7px 14px;
  }
}

@media (max-width: 767px) {
  .admin-menu-groups {
    columns: 3;
  }
}

@media (max-width: 649px) {
  .admin-menu-groups {
    columns: 2;
  }
}

@media (max-width: 575px) {
  .admin-menu-groups {
    columns: 2;
  }
}

@media (max-width: 399px) {
  .admin-menu-groups {
    columns: unset;
  }  
}