
.product-approvals__dot {
    width: 0.4375rem;
    height: 0.4375rem;
    border-radius: 50%;
    flex-shrink: 0;
}

.product-approvals__dot--action {
    background-color: var(--action-needed);
}

.product-approvals__dot--success {
    background-color: var(--green-success);
}

.product-approvals__dot--progress {
    background-color: var(--action);
}

.product-approvals__dot--muted {
    background-color: var(--grey-40);
}

.product-approvals__dot--danger {
    background-color: var(--red);
}

.product-approvals__dot--decided {
    background-color: var(--dark-blue);
}

.product-approvals__dot--ship {
    background-color: var(--blue-ship);
}

.product-approvals__dot--pending {
    background-color: var(--search-icon-purple);
}

.product-approvals__tag {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.4375rem;
    border-radius: 0.25rem;
    font-size: 0.625rem;
    font-weight: 500;
    letter-spacing: 0.0197rem;
    white-space: nowrap;
}

.product-approvals__tag--action {
    background-color: var(--action-needed-fill);
    color: var(--action-needed);
}

.product-approvals__tag--success {
    background-color: var(--green-success-fill);
    color: var(--green-success);
}

.product-approvals__tag--progress {
    background-color: var(--surface-purple);
    color: var(--action);
}

.product-approvals__tag--muted {
    background-color: var(--grey-10);
    color: var(--grey-60);
}

.product-approvals__tag--danger {
    background-color: var(--red-fill-soft);
    color: var(--red);
}

.product-approvals__tag--decided {
    background-color: var(--surface-purple);
    color: var(--dark-blue);
}

.product-approvals-card {
    margin-bottom: 1rem;
}

.product-approvals-card__panel {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
    padding: 1rem;
    border: 0.0625rem solid var(--grey-20);
    border-radius: 0.5rem;
    background-color: var(--color-white);
}

.product-approvals-card__preview {
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.product-approvals-card__thumb {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border: 0.125rem solid var(--color-white);
    border-radius: 0.5rem;
    background-color: var(--grey-10);
    overflow: hidden;
    flex-shrink: 0;
}

.product-approvals-card__thumb + .product-approvals-card__thumb {
    margin-inline-start: -0.25rem;
}

.product-approvals-card__thumb-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-approvals-card__thumb--counter {
    background-color: var(--surface-purple);
    color: var(--action);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.0344rem;
}

/* Mobile pushes the "+N" badge to the far end instead of stacking it on the strip. */
.product-approvals-card__thumb + .product-approvals-card__thumb--counter {
    margin-inline-start: auto;
    border-color: transparent;
}

.product-approvals-card__legend {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    list-style: none;
}

.product-approvals-card__legend-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.product-approvals-card__legend-label {
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.0344rem;
    text-transform: uppercase;
    color: var(--grey-90);
    white-space: nowrap;
}

.product-approvals-card__button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    width: 100%;
    height: 2.75rem;
    padding: 0 0.75rem;
    border: none;
    border-radius: 0.5rem;
    background-color: var(--action);
    color: var(--color-white);
    font-size: 0.875rem;
    font-weight: 600;
    flex-shrink: 0;
}

.product-approvals-card__button:hover,
.product-approvals-card__button:focus {
    color: var(--color-white);
}

.product-approvals-modal .modal-body {
    padding: 0;
}

/* Hand scrolling over to __scroll so the dock can stay pinned to the bottom
   of the full-screen sheet. */
.s4d-mobile .product-approvals-modal .modal-mobile-overflow-content {
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.s4d-mobile .product-approvals-modal .modal-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}

.s4d-mobile .product-approvals-modal .product-approvals-modal__inner {
    flex: 1 1 auto;
    min-height: 0;
}

.product-approvals-modal__inner {
    display: flex;
    flex-direction: column;
    max-height: 100%;
}

/* Mobile owns a sticky bottom dock, so the rest of the sheet scrolls on its own.
   On desktop both wrappers collapse to `display: contents` and the grid takes over. */
.product-approvals-modal__scroll {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    flex: 1 1 auto;
    min-height: 0;
    padding-bottom: 1rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.product-approvals-modal__dock {
    display: flex;
    flex-direction: column;
    flex: 0 0 auto;
    border-top: 0.0625rem solid var(--grey-10);
    background-color: var(--color-white);
    box-shadow: 0 -0.25rem 0.75rem rgba(23, 20, 58, 0.06);
}

.product-approvals-modal__titles {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
    padding: 0 1rem;
}

.product-approvals-modal__meta {
    margin: 0;
    font-size: 0.75rem;
    color: var(--grey-50);
}

.product-approvals-modal__title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    letter-spacing: -0.0144rem;
    color: var(--grey-90);
}

.product-approvals-modal__close {
    align-self: flex-end;
    padding: 1rem 1rem 0;
    border: none;
    background: none;
    font-size: 0.875rem;
    line-height: 1;
    color: var(--grey-90);
    flex-shrink: 0;
}

.product-approvals-modal__alert {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0 1rem;
    padding: 0.75rem;
    border: 0.0625rem solid var(--action-needed);
    border-radius: 0.5rem;
    background-color: var(--action-needed-fill);
}

.product-approvals-modal__alert--danger {
    border-color: var(--red);
    background-color: var(--red-fill-soft);
}

/* The per-item footer note is desktop-only context; the mobile sheet shows the
   deadline countdown (--warning) and nothing else. */
.product-approvals-modal__alert--note {
    display: none;
}

.product-approvals-modal__alert-icon {
    font-size: 1rem;
    color: var(--action-needed);
    flex-shrink: 0;
}

.product-approvals-modal__alert--danger .product-approvals-modal__alert-icon {
    color: var(--red);
}

.product-approvals-modal__alert-body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.product-approvals-modal__alert-title {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--grey-90);
}

.product-approvals-modal__alert-text {
    margin: 0;
    font-size: 0.75rem;
    line-height: 1.5;
    color: var(--grey-50);
}

.product-approvals-modal__body {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0 1rem;
    min-width: 0;
}

.product-approvals-modal__gallery,
.product-approvals-modal__details {
    min-width: 0;
}

.product-approvals-gallery {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.product-approvals-gallery__stage {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 17.5rem;
    border-radius: 0.5rem;
    background-color: var(--grey-10);
    overflow: hidden;
}

.product-approvals-gallery__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-approvals-gallery__empty {
    margin: 0;
    padding: 1rem;
    font-size: 0.75rem;
    color: var(--grey-50);
    text-align: center;
}

.product-approvals-gallery__counter {
    position: absolute;
    top: 0.75rem;
    inset-inline-start: 0.75rem;
    padding: 0.3125rem 0.625rem;
    border-radius: 100rem;
    background-color: rgba(77, 83, 88, 0.8);
    color: var(--color-white);
    font-size: 0.75rem;
    font-weight: 500;
}

.product-approvals-gallery__nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    padding: 0;
    border: none;
    border-radius: 50%;
    background-color: var(--color-white);
    box-shadow: 0 0.25rem 0.5rem rgba(23, 20, 58, 0.18);
    color: var(--grey-90);
}

.product-approvals-gallery__nav--prev {
    inset-inline-start: 0.75rem;
}

.product-approvals-gallery__nav--next {
    inset-inline-end: 0.75rem;
}

/* On mobile the bottom dock already carries a thumbnail rail, so the gallery
   strip is hidden and the stage arrows do the paging. */
.product-approvals-gallery__thumbs {
    display: none;
    align-items: center;
    gap: 0.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
    overflow-x: auto;
}

.product-approvals-gallery__thumb {
    display: block;
    width: 3rem;
    height: 3rem;
    padding: 0;
    border: 0.125rem solid transparent;
    border-radius: 0.5rem;
    background-color: var(--grey-10);
    overflow: hidden;
    opacity: 0.7;
}

.product-approvals-gallery__thumb--active {
    border-color: var(--action);
    opacity: 1;
}

.product-approvals-gallery__thumb-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-approvals-details {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.product-approvals-details__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.product-approvals-details__link {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--action);
    text-decoration: underline;
}

.product-approvals-details__titles {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.product-approvals-details__title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--grey-90);
}

.product-approvals-details__meta {
    margin: 0;
    font-size: 0.75rem;
    color: var(--grey-50);
}

.product-approvals-details__reason {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    padding: 0.75rem;
    border: 0.0625rem solid var(--grey-20);
    border-radius: 0.5rem;
    background-color: var(--product-bg);
}

.product-approvals-details__reason > p:last-child {
    margin: 0;
}

.product-approvals-details__reason--action,
.product-approvals-details__reason--danger {
    border-color: var(--red);
    background-color: var(--red-fill-soft);
}

.product-approvals-details__reason--danger .product-approvals-details__reason-note {
    border-top-color: var(--red);
}

.product-approvals-details__reason-label {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.5;
    color: var(--grey-90);
}

/* A headline of its own carries the emphasis, so the label steps back to a caption. */
.product-approvals-details__reason-label--quiet {
    font-weight: 400;
    color: var(--grey-50);
}

.product-approvals-details__reason-title {
    margin: 0;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.5;
    color: var(--grey-90);
}

.product-approvals-details__reason-text {
    margin: 0;
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--grey-50);
}

.product-approvals-details__reason-note {
    margin: 0.5rem 0 0;
    padding-top: 0.75rem;
    border-top: 0.0625rem solid var(--grey-20);
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--grey-50);
}

.product-approvals-details__note {
    margin: 0;
    font-size: 0.75rem;
    color: var(--grey-50);
}

.product-approvals-modal__pane {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    min-width: 0;
}

.product-approvals-reject {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
    border: 0.0625rem solid var(--grey-20);
    border-radius: 0.5rem;
    background-color: var(--product-bg);
}

.product-approvals-reject__intro {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.product-approvals-reject__title {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--grey-90);
}

.product-approvals-reject__required {
    color: var(--red);
}

.product-approvals-reject__subtitle {
    margin: 0;
    font-size: 0.78125rem;
    color: var(--grey-50);
}

.product-approvals-reject__reasons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.product-approvals-reject__reason {
    padding: 0.5rem 0.75rem;
    border: 0.0625rem solid var(--grey-20);
    border-radius: 0.5rem;
    background-color: var(--color-white);
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--grey-90);
    text-align: start;
}

.product-approvals-reject__reason--active {
    border-color: var(--action);
    background-color: var(--surface-purple);
    color: var(--action);
}

.product-approvals-reject__text {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.product-approvals-reject__text-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
}

.product-approvals-reject__label {
    margin: 0;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--grey-90);
}

.product-approvals-reject__hint {
    font-size: 0.625rem;
    color: var(--grey-50);
}

.product-approvals-reject__textarea {
    min-height: 5.625rem;
    padding: 0.625rem 1rem;
    border: 0.0625rem solid var(--grey-20);
    border-radius: 0.5rem;
    font-size: 0.875rem;
    resize: vertical;
}

.product-approvals-reject__counter {
    margin: 0;
    font-size: 0.625rem;
    font-weight: 500;
    color: var(--grey-50);
    text-align: end;
}

.product-approvals-reject__counter--valid {
    color: var(--green-success);
}

.product-approvals-reject__counter--invalid {
    color: var(--red);
}

.product-approvals-sheet .rollup-dialog-container {
    height: auto;
    max-height: calc(100% - 3rem);
}

.product-approvals-sheet .rollup-dialog-header {
    flex-direction: column;
    align-items: stretch;
    padding: 1rem 1rem 0;
}

.product-approvals-sheet .rollup-dialog-header .header-indicator {
    display: none;
}

.product-approvals-sheet .rollup-dialog-content {
    min-height: 0;
    padding: 1rem;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.product-approvals-sheet .rollup-dialog-footer {
    flex-direction: column;
    align-items: stretch;
    padding: 0.75rem 1rem;
    padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0rem));
    border-top: 0.0625rem solid var(--grey-10);
}

.product-approvals-sheet__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
}

.product-approvals-sheet__titles {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 0;
}

.product-approvals-sheet__title {
    margin: 0;
    font-size: 1.125rem;
    font-weight: 600;
    letter-spacing: -0.0144rem;
    color: var(--grey-90);
}

.product-approvals-sheet__subtitle {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--grey-50);
}

.product-approvals-sheet__close {
    padding: 0;
    border: none;
    background: none;
    font-size: 0.875rem;
    line-height: 1;
    color: var(--grey-90);
    flex-shrink: 0;
}

/* The sheet itself is the card, so the embedded form drops its own frame. */
.product-approvals-sheet__form {
    gap: 1.25rem;
    padding: 0;
    border: none;
    background: none;
}

.product-approvals-rail {
    display: flex;
    gap: 0.75rem;
    padding: 0.75rem 1rem 0;
    overflow-x: auto;
}

.product-approvals-rail__group {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.product-approvals-rail__group:last-child {
    flex: 1;
}

.product-approvals-rail__heading {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.product-approvals-rail__heading-label,
.product-approvals-rail__heading-count {
    font-size: 0.625rem;
    font-weight: 600;
    letter-spacing: 0.0344rem;
    text-transform: uppercase;
    color: var(--grey-90);
    white-space: nowrap;
}

.product-approvals-rail__heading-rule {
    flex: 1 1 auto;
    height: 0.0625rem;
    margin-inline-start: 0.25rem;
    border-radius: 8rem;
    background-color: var(--grey-20);
}

.product-approvals-rail__list {
    display: flex;
    align-items: stretch;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.product-approvals-rail__card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
    width: 3.5rem;
    height: 100%;
    padding: 0.125rem;
    border: 0.125rem solid transparent;
    border-radius: 0.625rem;
    background: none;
    text-align: start;
}

.product-approvals-rail__card--active {
    border-color: var(--action);
}

.product-approvals-rail__thumb {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 3rem;
    height: 3rem;
    border-radius: 0.5rem;
    background-color: var(--grey-10);
    overflow: visible;
}

.product-approvals-rail__thumb-image {
    width: 100%;
    height: 100%;
    border-radius: 0.5rem;
    object-fit: cover;
}

.product-approvals-rail__thumb-icon {
    font-size: 1.25rem;
    color: var(--grey-40);
}

.product-approvals-rail__alert {
    position: absolute;
    top: -0.25rem;
    inset-inline-end: -0.25rem;
    font-size: 0.875rem;
    color: var(--action-needed);
    background-color: var(--color-white);
    border-radius: 50%;
}

.product-approvals-rail__name,
.product-approvals-rail__card .product-approvals__tag {
    display: none;
}

.product-approvals-modal__progress {
    padding: 0.5rem 1rem 0.75rem;
}

.product-approvals-modal__progress-track {
    display: block;
    height: 0.25rem;
    border-radius: 8rem;
    background-color: var(--grey-20);
    overflow: hidden;
}

.product-approvals-modal__progress-value {
    display: block;
    height: 100%;
    border-radius: 8rem;
    background-color: var(--action);
    transition: width 0.2s ease-in-out;
}

.product-approvals-modal__footer {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0rem));
    border-top: 0.0625rem solid var(--grey-10);
}

.product-approvals-modal__error {
    margin: 0;
    font-size: 0.75rem;
    color: var(--red-border);
}

.product-approvals-modal__actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.product-approvals-modal__button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    height: 2.75rem;
    padding: 0 1rem;
    border: none;
    border-radius: 0.5rem;
    font-size: 0.875rem;
}

.product-approvals-modal__actions > .product-approvals-modal__button:only-child {
    flex: 1 1 auto;
}

.product-approvals-modal__button--reject {
    background-color: var(--grey-10);
    color: var(--grey-90);
    font-weight: 500;
}

.product-approvals-modal__button--approve {
    flex: 1 1 auto;
    background-color: var(--action);
    color: var(--color-white);
    font-weight: 600;
}

.product-approvals-modal__button--approve:hover,
.product-approvals-modal__button--approve:focus {
    color: var(--color-white);
}

.product-approvals-modal__button[disabled] {
    opacity: 0.6;
}

.product-approvals-closed {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 0 1rem;
}

.product-approvals-closed__cards {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.product-approvals-closed__card {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    flex: 1 1 0;
    min-width: 0;
    padding: 1rem;
    border: 0.0625rem solid var(--grey-20);
    border-radius: 0.5rem;
    background-color: var(--product-bg);
}

.product-approvals-closed__card--shipped {
    border-color: var(--green-success-border);
    background-color: var(--green-success-tint);
}

.product-approvals-closed__card-head {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.product-approvals-closed__card-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.25rem;
    height: 1.25rem;
    border-radius: 50%;
    background-color: var(--grey-20);
    color: var(--grey-60);
    font-size: 0.75rem;
    flex-shrink: 0;
}

.product-approvals-closed__card--shipped .product-approvals-closed__card-badge {
    background-color: var(--green-badge-fill);
    color: var(--green-success);
}

.product-approvals-closed__card-title {
    margin: 0;
    font-size: 1rem;
    font-weight: 600;
    color: var(--grey-90);
}

.product-approvals-closed__card-amount {
    margin-inline-start: auto;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--grey-90);
    white-space: nowrap;
}

.product-approvals-closed__card-note {
    margin: 0;
    font-size: 0.75rem;
    line-height: 1.6875;
    color: var(--grey-50);
}

.product-approvals-closed__footnote {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.55;
    color: var(--grey-60);
}

.product-approvals-closed__actions {
    position: sticky;
    bottom: 0;
    z-index: 1;
    display: flex;
    justify-content: flex-end;
    margin: 0 -1rem;
    padding: 0.75rem 1rem;
    padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0rem));
    border-top: 0.0625rem solid var(--grey-10);
    background-color: var(--color-white);
}

.product-approvals-summary {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
    padding: 1.5rem 1rem;
}

.product-approvals-summary__badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.8125rem;
    height: 2.8125rem;
    border-radius: 50%;
    font-size: 1.5rem;
    flex-shrink: 0;
}

.product-approvals-summary__badge--done {
    background-color: var(--green-check-fill);
    color: var(--green-success);
}

.product-approvals-summary__badge--pending {
    background-color: var(--light-blue-fill);
    color: var(--dark-blue);
}

.product-approvals-summary__titles {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    max-width: 26rem;
    text-align: center;
}

.product-approvals-summary__title {
    margin: 0;
    font-size: 1.4375rem;
    font-weight: 600;
    letter-spacing: -0.0144rem;
    color: var(--ink-navy);
}

.product-approvals-summary__subtitle {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.55;
    color: var(--grey-60);
}

.product-approvals-summary__outcomes {
    width: 100%;
    max-width: 31.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
    border: 0.0625rem solid var(--grey-20);
    border-radius: 0.5rem;
    overflow: hidden;
}

.product-approvals-summary__outcome {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 0.875rem 1rem;
    font-size: 0.84375rem;
    color: var(--ink-navy);
    background-color: var(--color-white);
}

.product-approvals-summary__outcome + .product-approvals-summary__outcome {
    border-top: 0.0625rem solid var(--grey-20);
}

.product-approvals-summary__outcome--pending {
    background-color: var(--product-bg);
}

.product-approvals-summary__outcome-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.product-approvals-summary__outcome-count {
    font-weight: 600;
    white-space: nowrap;
}

.product-approvals-summary__actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.product-approvals-confirm .modal-body {
    padding: 0;
}

.product-approvals-confirm .modal-content {
    border-radius: 1rem;
}

.product-approvals-confirm__inner {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    padding-bottom: 1rem;
}

.product-approvals-confirm__header {
    display: flex;
    justify-content: flex-end;
    padding: 1rem 1rem 0;
}

.product-approvals-confirm__close {
    padding: 0;
    border: none;
    background: none;
    font-size: 0.875rem;
    line-height: 1;
    color: var(--grey-90);
}

.product-approvals-confirm__titles {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0 1rem;
    text-align: center;
}

.product-approvals-confirm__title {
    margin: 0;
    font-size: 1.375rem;
    font-weight: 600;
    letter-spacing: -0.0144rem;
    color: var(--ink-navy);
}

.product-approvals-confirm__subtitle {
    margin: 0;
    font-size: 0.875rem;
    color: var(--grey-60);
}

.product-approvals-confirm__summary {
    display: flex;
    flex-direction: column;
    margin: 0 1rem;
    padding-top: 0.75rem;
    border: 0.0625rem solid var(--grey-20);
    border-radius: 0.5rem;
    background-color: var(--product-bg);
}

.product-approvals-confirm__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin: 0;
    padding: 0.25rem 1rem;
    font-size: 0.8125rem;
    color: var(--ink-navy);
}

.product-approvals-confirm__row:last-of-type {
    padding-bottom: 0.75rem;
}

.product-approvals-confirm__row-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.product-approvals-confirm__row-value {
    font-weight: 600;
    white-space: nowrap;
}

.product-approvals-confirm__warning {
    margin: 0;
    padding: 0.75rem 1rem;
    border-top: 0.0625rem solid var(--grey-20);
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.5;
    color: var(--red);
    text-align: center;
}

/* Mobile stacks the actions with the primary on top (column-reverse keeps the
   conventional secondary-then-primary DOM order). */
.product-approvals-confirm__actions {
    display: flex;
    flex-direction: column-reverse;
    align-items: stretch;
    gap: 0.75rem;
    padding: 1rem;
    padding-bottom: 0;
    border-top: 0.0625rem solid var(--grey-10);
}

.product-approvals-confirm__actions > .product-approvals-modal__button {
    flex: 0 0 auto;
}

.product-approvals-skeleton {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1rem;
}

.product-approvals-skeleton__header,
.product-approvals-skeleton__details {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.product-approvals-skeleton__bar {
    display: block;
    border-radius: 0.25rem;
    background-color: var(--grey-20);
}

.product-approvals-skeleton__bar--small {
    width: 10.3125rem;
    height: 0.625rem;
}

.product-approvals-skeleton__bar--title {
    width: 100%;
    height: 0.9375rem;
    background-color: var(--grey-30);
}

.product-approvals-skeleton__bar--wide {
    width: 100%;
    height: 0.625rem;
}

.product-approvals-skeleton__bar--tag {
    width: 4.0625rem;
    height: 1.125rem;
    background-color: var(--grey-10);
}

.product-approvals-skeleton__rail {
    display: flex;
    gap: 0.75rem;
    overflow: hidden;
}

.product-approvals-skeleton__card {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex-shrink: 0;
    width: 6.25rem;
}

.product-approvals-skeleton__thumb {
    display: block;
    height: 4.0625rem;
    border-radius: 0.5rem;
    background-color: var(--grey-10);
}

.product-approvals-skeleton__body {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.product-approvals-skeleton__gallery {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.product-approvals-skeleton__stage {
    display: block;
    aspect-ratio: 1 / 1;
    border-radius: 0.5rem;
    background-color: var(--grey-10);
}

.product-approvals-skeleton__thumbs {
    display: flex;
    gap: 0.25rem;
    overflow: hidden;
}

.product-approvals-skeleton__photo {
    display: block;
    width: 3rem;
    height: 3rem;
    border-radius: 0.5rem;
    background-color: var(--grey-10);
    flex-shrink: 0;
}

.product-approvals-skeleton__footer {
    display: flex;
    justify-content: flex-end;
    gap: 0.5rem;
}

.product-approvals-skeleton__button {
    display: block;
    height: 2.5rem;
    border-radius: 0.75rem;
    background-color: var(--skeleton-bg);
}

.product-approvals-skeleton__button--secondary {
    width: 5.3125rem;
}

.product-approvals-skeleton__button--primary {
    flex: 1 1 auto;
    max-width: 11rem;
}

/* 57rem = 912px, the same threshold app.js uses to toggle the `s4d-mobile`
   body class — below it the modal renders as a full-screen sheet. */
@media (min-width: 57rem) {
    .product-approvals-modal .modal-dialog {
        max-width: 52.9375rem;
    }

    .product-approvals-modal .modal-content {
        border-radius: 1rem;
        box-shadow: 0 30.125rem 5rem rgba(23, 20, 58, 0.32);
    }

    .product-approvals-modal__inner {
        display: grid;
        grid-template-columns: 1fr auto;
        max-height: none;
    }

    /* The mobile scroll/dock wrappers dissolve so their children land directly
       in the grid below. */
    .product-approvals-modal__scroll,
    .product-approvals-modal__dock {
        display: contents;
    }

    .product-approvals-modal__rail,
    .product-approvals-modal__body,
    .product-approvals-modal__progress,
    .product-approvals-modal__summary,
    .product-approvals-modal__alert--danger,
    .product-approvals-skeleton {
        grid-column: 1 / -1;
    }

    .product-approvals-modal__titles {
        grid-row: 1;
        grid-column: 1;
        padding: 1.5rem 0 0 1.5rem;
    }

    .product-approvals-modal__close {
        grid-row: 1;
        grid-column: 2;
        align-self: start;
        justify-self: end;
        padding: 1.5rem 1.5rem 0 0;
    }

    .product-approvals-skeleton,
    .product-approvals-modal__rail,
    .product-approvals-modal__alert--danger {
        grid-row: 2;
    }

    .product-approvals-modal__alert--danger {
        margin: 1rem 1.5rem 0;
    }

    .product-approvals-modal__summary,
    .product-approvals-modal__body {
        grid-row: 3;
    }

    .product-approvals-modal__alert--warning,
    .product-approvals-modal__alert--note {
        display: flex;
        grid-row: 4;
        grid-column: 1;
        align-items: flex-start;
        gap: 0.25rem;
        margin: 0;
        padding: 1rem 0 1rem 1.5rem;
        border: none;
        border-top: 0.0625rem solid var(--grey-10);
        border-radius: 0;
        background: none;
    }

    .product-approvals-modal__progress {
        display: none;
    }

    .product-approvals-modal__body {
        flex-direction: row;
        gap: 1.5rem;
        padding: 0.75rem 1.5rem 1rem;
        border-top: 0.0625rem solid var(--grey-10);
    }

    .product-approvals-modal__gallery {
        flex: 0 0 21.5625rem;
    }

    .product-approvals-modal__pane {
        flex: 1 1 auto;
    }

    .product-approvals-gallery__thumbs {
        display: flex;
    }

    .product-approvals-reject__reasons {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
    }

    .product-approvals-reject__reason {
        width: 100%;
        padding: 0.5rem 1rem;
        font-size: 0.75rem;
    }

    .product-approvals-closed {
        padding: 1rem 1.5rem 0;
    }

    .product-approvals-summary {
        padding: 2rem 1.5rem;
    }

    .product-approvals-skeleton {
        padding: 1rem 1.5rem;
    }

    .product-approvals-confirm .modal-content {
        border-radius: 0.5rem;
    }

    .product-approvals-confirm__inner {
        gap: 1.5rem;
    }

    .product-approvals-confirm__header {
        padding: 1.5rem 1.5rem 0;
    }

    .product-approvals-confirm__titles {
        gap: 0.25rem;
        padding: 0 1.5rem;
    }

    .product-approvals-confirm__summary {
        margin: 0 1.5rem;
    }

    .product-approvals-confirm__row,
    .product-approvals-confirm__warning {
        font-size: 0.75rem;
    }

    .product-approvals-confirm__warning {
        text-align: start;
    }

    .product-approvals-confirm__actions {
        flex-direction: row;
        align-items: center;
        justify-content: flex-end;
        gap: 0.5rem;
        padding: 1rem 1.5rem 0;
    }

    .product-approvals-closed__cards {
        flex-direction: row;
        align-items: stretch;
    }

    .product-approvals-closed__actions {
        position: static;
        margin: 0;
        padding: 1rem 0;
        padding-bottom: 1rem;
    }

    .product-approvals-gallery__stage {
        height: auto;
        aspect-ratio: 1 / 1;
    }

    .product-approvals-modal__footer {
        grid-row: 4;
        flex-direction: row;
        align-items: center;
        justify-content: flex-end;
        padding: 1rem 1.5rem;
        padding-inline-start: 1rem;
    }

    .product-approvals-modal__button {
        height: 2.5rem;
        padding: 0 0.75rem;
    }

    .product-approvals-modal__actions > .product-approvals-modal__button:only-child,
    .product-approvals-modal__button--approve {
        flex: 0 0 auto;
    }

    .product-approvals-card__panel {
        flex-direction: row;
        align-items: center;
        gap: 0.75rem;
        flex-wrap: wrap;
        padding: 0.75rem 1rem;
    }

    .product-approvals-card__thumb {
        width: 2.75rem;
        height: 2.75rem;
    }

    .product-approvals-card__thumb + .product-approvals-card__thumb {
        margin-inline-start: -1.25rem;
    }

    .product-approvals-card__thumb + .product-approvals-card__thumb--counter {
        margin-inline-start: -1.25rem;
        border-color: var(--color-white);
    }

    .product-approvals-card__legend {
        flex-direction: row;
        align-items: center;
        flex-wrap: wrap;
        gap: 0.75rem;
        flex: 1 1 12rem;
    }

    .product-approvals-card__button {
        width: auto;
        height: 2.5rem;
    }

    .product-approvals-rail {
        padding: 0.75rem 1.5rem;
    }

    .product-approvals-rail__card {
        width: 7.25rem;
        padding: 0.5rem 0.5rem 0.75rem;
        border: 0.0625rem solid var(--grey-10);
        border-radius: 0.5rem;
        background-color: var(--color-white);
    }

    .product-approvals-rail__card--active {
        border: 0.125rem solid var(--action);
        padding: calc(0.5rem - 0.0625rem) calc(0.5rem - 0.0625rem) calc(0.75rem - 0.0625rem);
        box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.16);
    }

    .product-approvals-rail__thumb {
        width: 6.25rem;
        height: 4.0625rem;
    }

    .product-approvals-rail__name {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        font-size: 0.625rem;
        font-weight: 500;
        color: var(--grey-90);
    }

    .product-approvals-rail__card .product-approvals__tag {
        display: inline-flex;
    }

    .product-approvals-skeleton__body {
        flex-direction: row;
        gap: 1.5rem;
    }

    .product-approvals-skeleton__gallery {
        flex: 0 0 21.5625rem;
    }

    .product-approvals-skeleton__details {
        flex: 1 1 auto;
    }
}
