@layer components {
  .quick-look {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-block-size: var(--space-0);
  }

  .quick-look__pager {
    display: grid;
    grid-template-columns: var(--tap-min) minmax(var(--space-0), var(--track-fill)) var(--tap-min);
    grid-template-areas: "previous where next";
    align-items: center;
    column-gap: var(--space-4);
    padding-block: var(--space-3);
    padding-inline: var(--space-5);
  }

  .quick-look__step--previous {
    grid-area: previous;
  }

  .quick-look__step--next {
    grid-area: next;
  }

  .quick-look__where {
    grid-area: where;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font: var(--type-caption);
    color: var(--color-ink-muted);
    text-align: center;
  }

  .quick-look__stage {
    container-type: size;
    flex: 1;
    min-block-size: var(--space-0);
    overflow: auto;
    overscroll-behavior: contain;
    touch-action: pan-x pan-y;
    background-color: var(--color-surface-sunken);
  }

  .quick-look__content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-5);
    inline-size: var(--size-fill);
    min-block-size: var(--size-fill);
    padding: var(--space-5);
  }

  .quick-look__page {
    max-inline-size: var(--size-fill);
    block-size: auto;
    border-radius: var(--radius-xs);
    background-color: var(--color-surface);
    box-shadow: var(--elev-2);
  }

  .quick-look__media {
    max-inline-size: calc(100cqi - 2 * var(--space-5));
    max-block-size: calc(100cqb - 2 * var(--space-5));
    object-fit: contain;
  }

  .quick-look--photo .quick-look__media {
    max-inline-size: 100cqi;
    max-block-size: 100cqb;
  }

  .quick-look__content > .file-preview {
    inline-size: min(var(--size-fill), var(--modal-inline-size));
  }

  .quick-look--photo .quick-look__stage {
    background-color: var(--color-bg);
  }

  .quick-look--photo .quick-look__content {
    padding: var(--space-0);
  }

  .quick-look[data-zoomed] .quick-look__content {
    inline-size: max-content;
    min-inline-size: var(--size-fill);
    align-items: start;
    justify-content: start;
  }

  .quick-look[data-zoomed] :is(.quick-look__page, .quick-look__media) {
    max-inline-size: none;
    max-block-size: none;
  }

  .quick-look[data-zoomed] .quick-look__stage {
    scrollbar-width: none;
  }

  .quick-look[data-zoomed] .quick-look__stage::-webkit-scrollbar {
    display: none;
  }

  .quick-look__bar {
    position: relative;
    display: flex;
    justify-content: space-around;
    gap: var(--space-2);
    padding-block: var(--space-2) calc(var(--safe-bottom) + var(--space-2));
    padding-inline: max(var(--space-5), (var(--size-fill) - var(--modal-inline-size)) / 2);
    border-block-start: var(--border-width) solid var(--color-border);
  }

  .quick-look__action {
    gap: var(--space-3);
    padding-inline: var(--space-4);
    font: var(--type-body-sm);
  }

  .quick-look__menu > summary {
    list-style: none;
  }

  .quick-look__menu > summary::-webkit-details-marker {
    display: none;
  }

  .quick-look__menu-list {
    position: absolute;
    inset-block-end: calc(var(--size-fill) + var(--space-2));
    inset-inline-end: var(--space-5);
    z-index: var(--z-raised);
    display: flex;
    flex-direction: column;
    min-inline-size: calc(var(--modal-inline-size) / 2);
    overflow: hidden;
    border: var(--border-width) solid var(--color-border);
    border-radius: var(--radius-md);
    background-color: var(--color-surface-raised);
    box-shadow: var(--elev-3);
  }

  .quick-look__menu-item {
    --icon-size: var(--input-icon-size);

    display: flex;
    align-items: center;
    gap: var(--space-4);
    inline-size: var(--size-fill);
    min-block-size: var(--tap-min);
    padding-inline: var(--space-5);
    font: var(--type-body);
    color: var(--color-ink);
    text-align: start;
    -webkit-tap-highlight-color: transparent;
  }

  .quick-look__menu-list form + form .quick-look__menu-item {
    border-block-start: var(--border-width) solid var(--color-border);
  }

  .quick-look__menu-item--danger {
    color: var(--color-danger);
  }

  @media (any-hover: hover) {
    .quick-look__menu-item:hover {
      background-color: var(--color-surface-sunken);
    }
  }

  .quick-look__form {
    display: flex;
    flex-direction: column;
    gap: var(--space-6);
  }

  .quick-look__folder {
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
  }

  .quick-look__new-folder {
    display: none;
  }

  .quick-look__folder:has(.choice__option:last-child .choice__input:checked) .quick-look__new-folder {
    display: block;
  }

  .quick-look__remove {
    align-self: start;
    min-block-size: var(--tap-min);
    font: var(--type-body-sm);
    color: var(--color-danger);
    -webkit-tap-highlight-color: transparent;
  }

  .quick-look__remove:disabled {
    color: var(--color-ink-faint);
    cursor: progress;
  }

  @media (any-hover: hover) {
    .quick-look__remove:hover {
      text-decoration: underline;
    }
  }
}
