form {
    display: grid;
    gap: 1rem;

    div:has([required]) label::after {
        content: '*';
        margin-left: 1ch;
        color: var(--winner-green);
    }
}

fieldset {
    border: 1px solid var(--outline-color);
    border-radius: 0.5rem;
    padding: 1.5em;
    display: grid;
    gap: 1em;

    legend { color: var(--outline-color); }

    > div, > div > div {
        display: grid;
        gap: 0.5rem;
    }

    &.actions {
        --outline-color: var(--yellow);
        display: flex;
        justify-content: center;
        gap: 1rem;
    }
}

input, select, textarea {
    padding: 0.5rem 1rem;
    background-color: var(--light-gray);
    color: black;
    border: none;
    border-radius: 0.4rem;
    font-size: 1rem;
    font-family: inherit;
}

textarea { height: 10rem; }

input:disabled, select:disabled { background-color: darkgray; }