.invoice {
  input {
    background-color: transparent;
  }
}

@media (min-width: 992px) {
  .invoice__col {
    max-width: 320px;
  }
}

.invoice-panel,
.invoice-alert {
  width: 276px;

  &._hide {
    display: none;
  }
}

.invoice-close-btn {
  right: 0;
  top: 0;
  padding: 20px;
  border-radius: 0 10vw;
}

.invoice-file {
  padding: 16px;
  min-width: 148px;
  border: 1px dashed color-mix(in oklab, var(--blue) 40%, transparent);
  outline: 1px solid transparent;
  transition: outline-color var(--animation-duration) ease;

  &.invoice-file--uploaded {
    border: 0;
  }

  &:has(.invoice-file__preview:not(:empty)) {
    border-radius: 8px 0 8px 8px;
    padding: 2px;

    @media (max-width: 991px) {
      border-radius: 8px;
    }
  }
}

.invoice-file-outter {
  .invoice-delete {
    top: 0;
    border-radius: 0 4px 4px 0;
    border-left: transparent;
    pointer-events: none;
  }

  @media (any-hover: hover) {
    &:hover .invoice-file {
      border-color: transparent;
      outline-color: var(--title-color);
    }

    &:has(.invoice-file__preview:not(:empty)):hover .invoice-delete {
      opacity: 1;
      visibility: visible;
      pointer-events: all;
    }
  }

  @media (max-width: 991px) {
    .invoice-delete {
      border: 0;
    }

    &:has(.invoice-file__preview:not(:empty)) .invoice-delete {
      opacity: 1;
      left: 100%;
      visibility: visible;
      pointer-events: all;
      border-radius: 4px;
    }
  }
}

.invoice-file-outter.flex-row{
  display: flex;
  align-items: center;
  gap: 20px;
  .invoice-delete {
    left: 49%;
    background-color: var(--white);
  }
}

.invoice-logo__area{
  max-width: 143px;
  .invoice-logo__area-logo{
    font-weight: 500;
    font-size: 14px;
    line-height: 20px;
    color: #303030;
  }
  .invoice-logo__area-text{
    font-weight: 400;
    font-size: 12px;
    line-height: 18px;
    color: #91A2B6;
  }
}

.invoice-file__input {
  appearance: none;
  position: absolute;
  inset: 0;
  opacity: 0;
  z-index: -1;
  font-size: 0;
}

.invoice-file__preview {
  max-width: 150px;

  img {
    border-radius: 0;
  }
}

.invoice-file__alert {
  display: none;
  color: var(--orange-dark);
  max-width: 300px;
}

.invoice-input--vertical {
  padding: 4px;
  gap: 12px;
}

.invoice-input__input {
  &.invoice-input__input--date {
    min-height: 22px;

    &::-webkit-calendar-picker-indicator {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      opacity: 0;
    }
  }

  &::placeholder {
    color: var(--secondary-color);
  }

  textarea& {
    resize: vertical;
  }
}

textarea {
  field-sizing: content;
}

input[type="number"].no-spin {
  -moz-appearance: textfield;

  &::-webkit-inner-spin-button,
  &::-webkit-outer-spin-button {
    margin: 0;
    appearance: none;
  }
}

.invoice-input__input--switch-text-align {
  text-align: right;
}

.invoice-input__input--height-50 {
  min-height: 50px;
}

@media (max-width: 991px) {
  .invoice-input__input--height-50 {
    min-height: 38px;
  }

  .invoice-input__input--switch-text-align {
    text-align: left;
  }

  .invoice-file-outter.flex-row{
    flex-direction: column;
    gap: 12px;
  }
}

.invoice-input__input--max-width-88 {
  max-width: 88px;
}

.invoice-input__name {
  font-size: var(--text-small);
  width: 76px;
  flex: 0 0 76px;
}

.invoice__input-list.estimate .invoice-input__name{
  width: 150px;
  flex: 0 0 150px;
  text-align: end;
}

.invoice-input__name-heading {
  font-size: var(--text-regular);
  font-weight: 500;
  color: var(--title-color);
}

@media (max-width: 767px) {
  input[type="date"] {
    height: 38px;
  }

  .invoice-file-outter.flex-row{
    flex-direction: row;
    gap: 12px;
  }

  .invoice__input-list {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;

    &>*:last-of-type {
      grid-column: span 2;
    }
  }

  .invoice-input__input {
    padding: 8px 12px;
    border: 1px solid var(--disabled-bg-color);
    border-radius: 8px;
  }

  textarea.invoice-input__input {
    height: 38px;
  }

  .invoice-input__input--max-width-88 {
    max-width: none;
  }

  .invoice-input__name-heading {
    font-size: var(--text-micro);
    color: var(--text-color);
  }

  .invoice-input--vertical {
    flex-direction: column;
    padding: 0;
    gap: 4px;
  }

  .invoice-input__name,
  .invoice__input-list.estimate .invoice-input__name {
    font-size: var(--text-micro);
    width: auto;
    flex: none;
    text-align: start;
  }
}

.mobile-slide__list {
  gap: 8px;
}

@media (max-width: 767px) {
  .mobile-slide__wrap {
    overflow: hidden;
  }

  .mobile-slide {
    &._hide {
      .mobile-slide__toggle {
        svg {
          transform: scaleY(-1);
        }
      }

      .mobile-slide__wrap {
        display: none;
      }
    }
  }

  .mobile-slide__toggle {
    svg {
      transition: transform var(--animation-duration) ease;
    }
  }

  .mobile-slide__list {
    gap: 12px;
  }
}

.invoice-table {
  margin-top: clamp(var(--g6-mobile), 2vw, var(--g6-desktop));

  &::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: var(--current-color);
  }
}

@media (min-width: 992px) {
  .invoice-table>*:not(:last-child) {
    border-bottom: 1px solid var(--disabled-bg-color);
  }
}

@media (max-width: 991px) {
  .invoice-table {
    padding-bottom: 20px;
    margin-top: 0;
  }
}

.invoice-table__head {
  background-color: var(--current-color);
  border-radius: 8px 8px 0 0;
  display: grid;
  grid-template-columns: 44px 1fr 11% 17% 15% 17%;

  &._no-discount {
    grid-template-columns: 44px 1fr 16% 22% 22%;
  }
}

.invoice-table__head-cell {
  background-color: transparent;
}

.invoice-item:hover {
  .invoice-delete {
    opacity: 1;
    visibility: visible;
  }
}

.invoice-drag {
  right: 100%;
  top: 20px;
  opacity: 0;
  visibility: hidden;
  transition:
    opacity var(--animation-duration) ease,
    visibility var(--animation-duration) ease;
}

.invoice-delete:hover {
  border-color: var(--orange-dark);

  path {
    fill: var(--orange-dark);
  }
}

@media (min-width: 992px) {
  .invoice-item {
    display: grid;
    grid-template-columns: 44px 1fr 11% 17% 15% 17%;

    &:not(:last-of-type) {
      border-bottom: 1px solid var(--disabled-bg-color);
    }

    &._no-discount {
      grid-template-columns: 44px 1fr 16% 22% 22%;
    }
  }

  @media (any-hover: hover) {
    .invoice-item:hover {
      .invoice-drag {
        opacity: 1;
        visibility: visible;
      }
    }
  }
}

.invoice-item__group {
  grid-column: span 2;
  display: flex;

  .invoice-item__cell--left {
    padding: 0 32px 0 0;
  }
}

.invoice-item__cell {
  padding: 0 12px;
}

.invoice-item__cell--right {
  padding: 0 8px 0 16px;
}

.invoice-item__cell--total {
  justify-content: end;
}

.invoice-item__counter {
  justify-content: center;
}

.invoice-delete {
  position: absolute;
  left: 100%;
  top: -4px;
  width: 28px;
  height: 28px;
  display: grid;
  place-content: center;
  opacity: 0;
  visibility: hidden;
  border-radius: 4px;
  border: 1px solid var(--secondary-color);
  transition:
    opacity var(--animation-duration) ease,
    visibility var(--animation-duration) ease;

  path {
    fill: var(--secondary-color);
  }
}

.invoice-total__item {
  padding: 12px;
  gap: 20px;
}

.invoice-total__add {
  align-self: start;
}

.invoice-divider {
  border-bottom: 3px solid var(--current-color);
}

@media (max-width: 991px) {
  .invoice-item__counter {
    background-color: var(--current-color);
    padding: 8px 24px;
    color: var(--white);
    justify-content: start;
    margin-bottom: 20px;
  }

  .invoice-item__group {
    margin-top: 12px;
    gap: 12px;

    .invoice-item__cell {
      padding: 0;
      flex: 1 1 auto;
    }
  }

  .invoice-item__cell {
    padding: 0;
  }

  .invoice-item__cell--commodity-name {
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .invoice-item__cell--total {
    align-items: center;
    justify-content: space-between;
  }

  .invoice-item__cell--mobile-mt-20 {
    margin-top: 20px;
  }

  .invoice-item .invoice-delete {
    position: static;
    opacity: 1;
    visibility: visible;
    height: 16px;
    width: 16px;
    flex: 0 0 16px;
    border: 0;
    order: -1;
  }

  .invoice-item__cell--border-991 .invoice-input__input {
    padding: 8px 12px;
    border: 1px solid var(--disabled-bg-color);
    border-radius: 8px;
  }
}

@media (min-width: 576px) {
  .invoice-total__list {
    max-width: 330px;
    width: 100%;
  }
}

@media (max-width: 575px) {
  .invoice-table::after {
    left: -24px;
    width: calc(100% + 48px);
  }

  .invoice-item__counter {
    margin: 0 -24px 20px;
  }

  .invoice-total__add {
    align-self: center;
  }

  .invoice-total__list {
    margin: 0 -24px;
    width: calc(100% + 48px);
  }

  .invoice-total__item {
    padding: 12px 24px;
    gap: 4px;
  }
}

.invoice-outline {
  outline-offset: 2px;
  outline: 1px solid transparent;
}

.invoice-outline:focus-visible,
.invoice-outline:hover {
  border-radius: 4px;
  outline-color: var(--title-color);
}

.invoice-outline--white:focus-visible,
.invoice-outline--white:hover {
  border-radius: 4px;
  outline-color: var(--white);
}

.invoice-total__text {
  font-size: var(--text-small);
}

.invoice-total__sum-value {
  &::placeholder {
    color: var(--secondary-color);
  }
}

.draggable {
  cursor: move;

  &._dragging {
    outline: 1px solid var(--green);
    border-radius: 8px;
    outline-offset: 2px;
  }
}

@media (max-width: 767px) {
  .invoice-outline {
    outline-offset: -1px;
  }

  .invoice-outline:focus-visible,
  .invoice-outline:hover {
    border-color: transparent;
  }

  .invoice-total__text {
    font-size: var(--text-micro);
  }
}

@media (max-width: 575px) {
  .invoice-total__sum-value.invoice-total__sum-value--border-575 {
    padding: 8px 12px;
    border: 1px solid var(--disabled-bg-color);
    border-radius: 8px;
    text-align-last: left;
    background-color: var(--white);
  }
}

.color-picker {
  --current-color: transparent;

  width: 32px;
  height: 32px;
  flex: 0 0 32px;

  &::after {
    content: '';
    background-color: var(--current-color);
    position: absolute;
    inset: 0;
  }

  &:has(.color-picker__input:checked)::after,
  &._checked::after {
    background: url('/site/templates/img/pdf/tick.svg') center / 12px 10px no-repeat, var(--current-color);
  }
}

.color-picker--default {
  --current-color: var(--title-color);
}

.color-picker--green {
  --current-color: var(--green);
}

.color-picker--orange {
  --current-color: #FF8B61;
}

.color-picker--red {
  --current-color: #E74D55;
}

.color-picker--blue {
  --current-color: var(--blue);
}

.color-picker--any {
  &::before {
    content: '';
    position: absolute;
    inset: 0;
    background: url('/site/templates/img/pdf/any-color.svg') center / cover no-repeat;
  }
}

.color-picker__input {
  appearance: none;
  opacity: 0;
}

.invoice-buttons {
  margin-top: 12px;
  display: grid;
  grid-template-columns: 50px 1fr;
  grid-template-rows: 50px 50px;
  gap: 8px;
}

.invoice-buttons--mobile {
  display: none;
}

.invoice-buttons__full-row {
  grid-column: span 2;
}

@media (max-width: 767px) {
  .invoice-buttons--mobile {
    display: grid;
    grid-template-columns: 50px 1fr 1fr;
    grid-template-rows: auto;
    margin-top: 8px;
  }
  .invoice-buttons--mobile.estimate{
    grid-template-columns: 1fr 1fr;
  }

  .invoice-buttons__full-row {
    grid-column: span 1;
  }

  .invoice-buttons--mobile .invoice-buttons__mobile-link {
    margin-top: 12px;
    grid-column: span 3;
  }

  .invoice-settings {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100dvh;
    z-index: 100;
    display: none;

    &._active {
      display: block;
    }

    .invoice-panel,
    .invoice-alert {
      overflow-x: hidden;
      overflow-y: auto;
      top: 0 !important;
      left: 0;
      position: absolute;
      width: 100%;
      height: 100%;
      border: 0;
      border-radius: 0;

      .btn {
        min-height: 48px;
        margin-top: 32px;
      }
    }
  }

  .invoice-alert {
    align-items: center;
    justify-content: center;
    text-align: center;

    .invoice-alert__heading {
      font-size: 32px;
      line-height: 1.33;
    }

    .invoice-alert__text {
      font-size: 16px;
      line-height: 1.625;
    }
  }

  ._invoice-body-lock {
    overflow: hidden;
    overflow: clip;
  }
}

@media (max-width: 360px) {
  .invoice-buttons--mobile {
    grid-template-columns: 50px 1fr;
    grid-template-rows: 50px 50px;
  }


  .invoice-buttons__full-row {
    grid-column: span 2;
  }

   .invoice-buttons--mobile.estimate{
    grid-template-columns: 1fr;
    .invoice-buttons__full-row {
      grid-column: span 1;
    }
  }
}
