@use '@angular/material' as mat;
@use 'sass:map';
@use '../../styles/typography';
@use '../../styles/mixins';

@mixin payment-fees-theme($theme) {
  $color-config: mat.get-color-config($theme);
  $primary: mat.get-color-from-palette(map.get($color-config, primary));

  .payment-fees {
    --mat-expansion-header-indicator-color: #{$primary};

    .mat-expansion-panel {
      &:not(.mat-expanded):hover,
      &:not(.mat-expanded):focus-within {
        border-color: $primary !important;

        .mat-expansion-panel-header-title {
          color: $primary;
        }
      }
    }
  }
}

$payment-fees-border: 1px solid #e7e7e7;
$payment-fees-border-radius: 10px;
$payment-fees-box-shadow: 10px 20px 40px 0 rgba(0, 0, 0, 0.05);
$payment-fees-padding: 16px;
$payment-fees-height: 52px;

.payment-fees {
  --mat-expansion-header-collapsed-state-height: #{$payment-fees-height};
  --mat-expansion-header-expanded-state-height: #{$payment-fees-height};
  --mat-expansion-header-hover-state-layer-color: transparent;
  --mat-expansion-header-focus-state-layer-color: transparent;

  .mat-expansion-panel {
    box-shadow: $payment-fees-box-shadow;
    border: $payment-fees-border;
    border-radius: $payment-fees-border-radius;
  }

  .mat-expansion-panel-header {
    @include typography.text-base;
    font-weight: map.get(typography.$font-weights, bold);
    padding: 0 $payment-fees-padding;
  }

  ::ng-deep .mat-expansion-panel-body {
    padding: 0 $payment-fees-padding $payment-fees-padding;
  }

  &__country:not(:last-child) {
    margin-bottom: 12px;
  }

  &__method:not(:last-child),
  &__tier:not(:last-child) {
    margin-bottom: 12px;
    display: block;
  }

  &__tier-table {
    --mat-table-row-item-outline-width: 0;
    --mat-table-row-item-container-height: 28px;
    --mat-table-header-container-height: 36px;
    --mat-table-header-headline-weight: #{map.get(typography.$font-weights, semibold)};

    overflow: hidden;
    border: $payment-fees-border;
    border-radius: $payment-fees-border-radius;

    .mat-mdc-header-cell:not(:last-child),
    .mat-mdc-cell:not(:last-child) {
      border-right: 1px solid #999;
    }

    .mat-mdc-row:nth-child(odd) {
      background-color: #f0f0f0;
    }

    .fee-name-column-content {
      display: flex;
      align-items: center;
      gap: 10px;
    }
  }
}
