/* Contact + track pages (light surface) and the search dialog. Tokens only. */
@layer components {
  .form-page {
    background-color: var(--cream-100);
    padding-block: var(--section-pad);
    min-height: 60vh;
  }

  .form-page__intro {
    max-width: 52ch;
    margin: var(--space-4) auto 0;
    text-align: center;
  }

  .page-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    max-width: 520px;
    margin: var(--space-7) auto 0;

    & .btn {
      align-self: flex-start;
      min-height: 47px;
      padding-inline: 28px;
      font-size: var(--fs-button-lg);
    }

    /* Same .field parts as the cart drawer, recoloured for a light surface. */
    & .field__label {
      color: var(--ca-muted);
    }

    & .field__input {
      border-color: var(--sand-300);
      background-color: var(--cream-50);
      color: var(--text-on-light);

      &::placeholder {
        color: var(--text-on-light-muted);
        opacity: 0.7;
      }

      &:focus-visible {
        outline-offset: 0;
        border-color: var(--gold-600);
      }

      &[aria-invalid="true"] {
        border-color: var(--cocoa-600);
      }
    }

    & .field__error {
      color: var(--cocoa-600);
    }
  }

  .page-form__status {
    min-height: 1.5em;
    margin: 0;
    color: var(--ca-body);
  }

  /* ---- Order tracking result ------------------------------------------- */
  .track-result {
    max-width: 520px;
    margin: var(--space-7) auto 0;
    padding: var(--space-5);
    border: 1px solid var(--sand-300);
    background-color: var(--cream-50);
    display: flex;
    flex-direction: column;
    gap: var(--space-4);

    &:focus-within h2 {
      outline: none;
    }
  }

  .track-steps {
    display: grid;
    gap: var(--space-2);
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .track-steps__item {
    position: relative;
    padding-left: var(--space-6);
    color: var(--ca-muted);

    &::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.35em;
      width: 14px;
      height: 14px;
      border: 1px solid var(--sand-300);
      border-radius: 50%;
    }

    &.is-done {
      color: var(--ca-body);

      &::before {
        background-color: var(--gold-500);
        border-color: var(--gold-500);
      }
    }

    &.is-current {
      color: var(--ca-heading);
      font-weight: 700;

      &::before {
        background-color: var(--gold-500);
        border-color: var(--gold-600);
        box-shadow: 0 0 0 3px color-mix(in srgb, var(--gold-400) 35%, transparent);
      }
    }
  }

  .track-pay {
    margin: 0;
    color: var(--ca-body);

    &.track-pay--paid {
      color: var(--ca-heading);
      font-weight: 700;
    }
  }

  .track-items {
    margin: 0;
    padding: var(--space-4) 0 0;
    border-top: 1px solid var(--sand-300);
    list-style: none;
    color: var(--ca-body);
  }

  /* ---- Search dialog ---------------------------------------------------- */
  .search-dialog {
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--text-on-dark);

    &::backdrop {
      background-color: color-mix(in srgb, var(--ink-950) 60%, transparent);
    }

    &[open] {
      display: flex;
      justify-content: center;
      align-items: flex-start;
    }
  }

  .search-dialog__panel {
    width: min(640px, 100%);
    max-height: min(80vh, 100%);
    margin-top: var(--space-8);
    display: flex;
    flex-direction: column;
    background-color: var(--ink-700);
    border: 1px solid var(--gold-hairline);
  }

  .search-dialog__head {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--gold-hairline);
  }

  .search-dialog__input {
    flex: 1;
    min-width: 0;
    border: none;
    background: none;
    color: var(--text-on-dark);
    font-family: var(--font-display);
    font-weight: 500;
    font-size: var(--fs-section-title);
    letter-spacing: var(--ls-title);

    &::placeholder {
      color: var(--text-on-dark-muted);
    }

    &:focus-visible {
      outline: none;
    }

    /* Our own close button is beside it; hide the browser's blue clear-× */
    &::-webkit-search-cancel-button {
      display: none;
    }
  }

  .search-dialog__results {
    margin: 0;
    padding: var(--space-2) var(--space-5) var(--space-4);
    list-style: none;
    overflow-y: auto;
  }

  .search-result {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding-block: var(--space-3);
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid var(--gold-hairline);

    &:hover .search-result__name {
      color: var(--gold-200);
    }

    & img {
      width: 56px;
      height: 56px;
      object-fit: cover;
      border: 1px solid var(--gold-hairline);
    }

    & > span {
      display: flex;
      flex-direction: column;
      gap: var(--space-1);
    }
  }

  .search-result__name {
    font-family: var(--font-display);
    font-weight: 600;
    font-size: var(--fs-card-title);
    letter-spacing: 0.03em;
    text-transform: uppercase;
  }

  .search-dialog__none {
    padding-block: var(--space-5);
  }
}
