.prep .prep-intro {
    max-width: 28ch;
    margin: .8rem 0 0;
}

.prep-portal { justify-self: start; align-self: start; }
.prep:has(.prep-items input:not(:checked)) .prep-portal { display: none; }

@media (min-width: 44.01rem) {
    .prep { grid-template-rows: auto 1fr; row-gap: 1rem; }
    .prep-items { grid-area: 1 / 2 / span 2; }
    .prep-portal { grid-area: 2 / 1; }
}

.prep-progress:not([hidden]) {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-top: 1.2rem;
    color: var(--evergreen);
    font-size: .875rem;
}

.prep-progress progress {
    width: 4rem;
    height: .4rem;
    border: 0;
    border-radius: 1rem;
    overflow: hidden;
    background: #cccbbd;
    color: var(--evergreen);
}

.prep-progress progress::-webkit-progress-bar { background: #cccbbd; }
.prep-progress progress::-webkit-progress-value { background: var(--evergreen); }
.prep-progress progress::-moz-progress-bar { background: var(--evergreen); }

.prep-items {
    display: grid;
    align-content: start;
    gap: .6rem;
    min-inline-size: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.prep-items label {
    display: grid;
    grid-template-columns: 1.2rem 1fr;
    gap: .85rem;
    align-items: start;
    padding: .9rem 1rem;
    background: var(--bone);
    border: 1px solid #c5c7ba;
    border-radius: .35rem;
    color: var(--slate);
    line-height: 1.45;
    cursor: pointer;
}

.prep-items label:hover { border-color: var(--copper); }
.prep-items label:focus-within { outline: 2px solid var(--evergreen); outline-offset: 2px; }
.prep-items input {
    width: 1.2rem;
    height: 1.2rem;
    margin: .1rem 0 0;
    accent-color: var(--evergreen);
    cursor: pointer;
}

.prep-items strong {
    display: block;
    margin-bottom: .2rem;
    color: var(--pine);
    font-weight: 550;
}
