@use "../../../styles/variables" as vars;
@use "../../../styles/fonts" as fonts;
@use "../../../styles/colors" as colors;
@use "../../../styles/screen" as screen;
@use "../../../styles/shadows" as shadows;

.flights-map-start-page {
  section.frame {
    padding: 0;
    overflow: hidden;
  }

  .page-title {
    width: auto;
    display: inline-block;
    max-width: 100%;
    white-space: normal !important;
  }

  h1.text--white {
    @include fonts.font-overflow();

    @include screen.smTablet {
      font-size: fonts.$font-size-xxxl--tablet;
      margin-bottom: vars.$space-m + vars.$space-s;
      overflow: visible;
      white-space: normal;
    }

    @include screen.mobile {
      font-size: fonts.$font-size-xxxl--mobile;
      margin-bottom: vars.$space-m + vars.$space-s;
      margin-top: vars.$space-m;
      overflow: visible;
      white-space: normal;
    }
  }

  .flights-map-start {
    &__map-wrapper {
      position: relative;
      min-height: 500px;
    }

    &__map {
      width: 100%;
      height: 500px;
    }

    &__spinner,
    &__loader,
    &__error,
    &__empty {
      padding: vars.$space-xl;
      text-align: center;
      color: colors.$light-gray;
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 200px;
    }

    &__error {
      color: colors.$red;
    }
  }

  // Inline loader matching Angular loader-sheet component
  .page-loader__loader {
    position: relative;
    width: 120px;
    height: 120px;
    transform: scale(0.5);

    .loader-circle {
      position: absolute;
      left: 50%;
      top: 50%;
      width: 120px;
      height: 120px;
      border-radius: 50%;
      box-shadow: inset 0 0 0 3px colors.$blue-light;
      margin-left: -60px;
      margin-top: -60px;
    }

    .loader-line-mask {
      position: absolute;
      left: 50%;
      top: 50%;
      width: 60px;
      height: 120px;
      margin-left: -60px;
      margin-top: -60px;
      overflow: hidden;
      transform-origin: 60px 60px;
      animation: flights-map-rotate 1.2s infinite linear;

      .loader-line {
        width: 120px;
        height: 120px;
        border-radius: 50%;
        box-shadow: inset 0 0 0 3px rgba(255, 255, 255, 0.5);
      }
    }

    @keyframes flights-map-rotate {
      0% { transform: rotate(0deg); }
      100% { transform: rotate(360deg); }
    }
  }
}

// Filter panel styling for content-left column
.flights-map-filter {
  @include shadows.box-shadow-small;
  background-color: colors.$white;
  border-radius: vars.$border-radius;
  padding: vars.$space-xl;
  display: flex;
  flex-direction: column;
  gap: vars.$space-m;

  &__field {
    display: flex;
    flex-direction: column;
    gap: vars.$space-s;

    label {
      @include fonts.font-small(colors.$gray);
      margin-bottom: vars.$label-margin-bottom;
    }

    input[type="text"],
    input[type="date"] {
      @include shadows.control-border-shadow();
      height: vars.$standard-button-height;
      padding: 0 vars.$space-l;
      padding-left: vars.$space-m !important;
      font-size: fonts.$font-size-l;
      font-weight: fonts.$font-regular;
      color: colors.$text-color;
      width: 100%;
      transition-duration: 0.2s;
      @include fonts.font-overflow();

      &:focus {
        outline: none;
        border-color: colors.$blue-light;
        box-shadow: 0 0 0 0.2em colors.$focus-shadow;
      }
    }
  }

  &__exchange {
    align-self: center;
    width: vars.$standard-button-height;
    height: vars.$standard-button-height;
    background: colors.$white;
    @include shadows.control-border-shadow();
    cursor: pointer;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition-duration: 0.2s;

    &:hover {
      border-color: colors.$blue-light;
    }
  }

  &__info {
    padding: vars.$space-s 0;

    p {
      @include fonts.font-small(colors.$gray);
      line-height: 1.5;
      margin: 0;
    }
  }

  &__toggles {
    display: flex;
    flex-direction: column;
    gap: vars.$space-s;

    label {
      display: flex;
      align-items: center;
      gap: vars.$space-s;
      cursor: pointer;
      @include fonts.font-small(colors.$gray);
    }
  }

  &__toggle--disabled {
    opacity: 0.5;
    cursor: not-allowed !important;
    pointer-events: none;
  }
}
