@layer components {
    :root {
        --whodunit-bar-reader: var(--secondary-system-background);
        --whodunit-bar-text: var(--label);
        --whodunit-bar-used: var(--secondary-label);
        --whodunit-bar-step: var(--tint);
        --whodunit-bar-step-pressed: var(--tint-fill);
        --whodunit-bar-status: var(--secondary-label);
        --whodunit-bar-result: var(--label);
        --whodunit-bar-focus: var(--tint);
    }

    .whodunit-bar {
        display: grid;
        gap: 0.625rem;
    }

    .whodunit-bar__reader {
        align-items: center;
        background-color: var(--whodunit-bar-reader);
        border-radius: 1rem;
        display: grid;
        grid-template-columns: 2.75rem minmax(0, 1fr) 2.75rem;
        min-block-size: 3.5rem;
    }

    .whodunit-bar__step {
        align-self: stretch;
        border-radius: 1rem;
        color: var(--whodunit-bar-step);
        display: grid;
        place-items: center;
        touch-action: manipulation;
        transition:
            background-color 140ms,
            scale 140ms cubic-bezier(0.2, 0.8, 0.2, 1);
        -webkit-tap-highlight-color: transparent;

        &:active {
            background-color: var(--whodunit-bar-step-pressed);
            scale: 0.92;
        }

        &:focus-visible {
            outline: 0.1875rem solid var(--whodunit-bar-focus);
            outline-offset: -0.1875rem;
        }
    }

    .whodunit-bar__chevron {
        block-size: 1.375rem;
        fill: none;
        inline-size: 1.375rem;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 2.5;
    }

    .whodunit-bar__clue {
        align-items: center;
        display: grid;
        grid-template-columns: 2.75rem minmax(0, 1fr);
    }

    .whodunit-bar__text {
        color: var(--whodunit-bar-text);
        font-size: var(--font-size-subheadline);
        line-height: 1.3;
        margin: 0;
        padding-block: 0.5rem;
        text-wrap: pretty;

        &.whodunit-bar__text--used {
            color: var(--whodunit-bar-used);
            text-decoration: line-through;
            text-decoration-thickness: 0.0625rem;
        }
    }

    .whodunit-bar__check {
        align-items: center;
        display: grid;
        gap: 0.75rem;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .whodunit-bar__status {
        color: var(--whodunit-bar-status);
        display: grid;
        font-size: var(--font-size-footnote);
        gap: 0.125rem;
        line-height: 1.25;
        margin: 0;
        padding-inline-start: 0.5rem;
    }

    .whodunit-bar__result {
        color: var(--whodunit-bar-result);
        font-weight: 650;
    }

    .whodunit-bar__form {
        display: grid;
    }

    .whodunit-bar__button {
        min-block-size: 3rem;
        min-inline-size: 7.5rem;
    }
}
