.expense-import {
    max-width: 980px;
    margin: 0 auto;
    padding: 2rem 1rem;
}

.expense-import__heading,
.expense-import__actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.expense-import__heading h1,
.expense-import__panel h2 {
    margin: 0;
}

.expense-import__heading p,
.expense-import__panel p {
    color: #5c6670;
}

.expense-import__eyebrow {
    margin: 0 0 .35rem;
    color: #23763c !important;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.expense-import__form {
    display: grid;
    gap: 1rem;
}

.expense-import__panel {
    display: grid;
    grid-template-columns: 2.5rem repeat(2, minmax(0, 1fr));
    gap: 1rem;
    padding: 1.25rem;
    background: #fff;
    border: 1px solid #d9dde1;
    border-radius: .5rem;
}

.expense-import__source textarea,
.expense-import__preview,
.expense-import__panel-copy {
    grid-column: 2 / -1;
}

.expense-import__source textarea {
    width: 100%;
    box-sizing: border-box;
    font-family: monospace;
    resize: vertical;
}

.expense-import__step {
    display: grid;
    place-items: center;
    align-self: start;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: #23763c;
    color: #fff;
    font-weight: 700;
}

.expense-import__panel label select,
.expense-import__panel label input {
    width: 100%;
    margin-top: .35rem;
    box-sizing: border-box;
}

.expense-import__panel > label {
    grid-column: 2;
}

.expense-import__panel > label:nth-of-type(even) {
    grid-column: 3;
}

.expense-import__preview {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    color: #5c6670;
}

.expense-import__preview span {
    display: flex;
    gap: .4rem;
    padding: .4rem .65rem;
    border-radius: 1rem;
    background: #eef1f3;
}

.expense-import__actions {
    position: sticky;
    bottom: 0;
    padding: 1rem 1.25rem;
    box-sizing: border-box;
    background: #fff;
    border: 1px solid #d9dde1;
    border-radius: .5rem;
    box-shadow: 0 -.25rem 1rem rgba(0, 0, 0, .08);
}

@media (max-width: 600px) {
    .expense-import__heading {
        align-items: flex-start;
    }

    .expense-import__panel {
        grid-template-columns: 2.5rem minmax(0, 1fr);
    }

    .expense-import__panel > label,
    .expense-import__panel > label:nth-of-type(even),
    .expense-import__preview,
    .expense-import__panel-copy,
    .expense-import__source textarea {
        grid-column: 2;
    }

    .expense-import__actions {
        flex-wrap: wrap;
    }
}
