form {
    position: relative;
}

form fieldset {
    border-radius: 4px;
}

form div.file-input {
    display: block;
    margin-top: 4px;
}

form div.file-input label {
    padding: 4px;
}

fieldset.grid {
    display: grid;
    grid-template-columns: auto [label] max-content [field] max-content auto;
}

fieldset.grid label {
    display: inline-block;
    grid-column: label;
    text-align: right;
    margin-right: 4pt;
}

fieldset.grid input {
    display: inline-block;
    grid-column: field;
}

fieldset.grid input, fieldset.grid label {
    margin-top: 2px;
    margin-bottom: 2px;
}

fieldset.cache-config {
    display: grid;
    grid-template-columns: auto [data] max-content [instruction] max-content auto;
}

fieldset.cache-config div.cache-entry {
    display: inline-block;
    grid-row: 2;
}

fieldset.cache-config div.label {
    grid-row: 1;
    grid-column: 1/-1;
}

fieldset.cache-config div.cache-entry.data {
    grid-column: data;
}

fieldset.cache-config div.cache-entry.instruction {
    grid-column: instruction;
}

form div.buttons {
    display: grid;
    grid-template-columns: 30% [start]auto [down]30%;
    height: fit-content;
    margin-top: 4pt;
}

form input.submit-button {
    display: block;
    font-size: medium;
    font-weight: bold;
    padding: 8pt;
    grid-column: start;
}

form button.download-button {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 20pt;
    padding: 2pt 8pt;
    grid-column: down;
    max-width: fit-content;
    margin-left: auto;
}

form button.download-button i {
    height: fit-content;
}
