.plain-form {
    display: grid;
    grid-template-columns: minmax(160px, 220px) minmax(0, 1fr);
    gap: 12px 18px;
    align-items: start;
    margin: 18px 0;
}
.plain-form label { padding-top: 5px; }
.plain-form > *, .transfer-details > * { min-width: 0; }
.plain-form input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
.plain-form textarea, .plain-form select {
    box-sizing: border-box;
    width: 100%;
    max-width: 650px;
    padding: 6px;
    border: 1px solid #999;
    border-radius: 2px;
    font: inherit;
    background: #fff;
    color: #222;
}
.plain-form input[readonly], .plain-form input:disabled { background: #eee; }
.plain-form [type=checkbox], .plain-form [type=radio] { width: auto; }
.plain-form small { display: block; margin: 5px 0; color: #444; }
.plain-form input + button { margin-top: 5px; }
.plain-form fieldset { min-width: 0; margin: 0; padding: 12px; border: 1px solid #aaa; }
.plain-form fieldset input[type=datetime-local],
.plain-form fieldset input[type=number] { width: auto; max-width: 100%; margin: 5px 12px 5px 0; }
.full-row { grid-column: 1 / -1; }
.form-status, .file-status { min-height: 1.4em; white-space: pre-wrap; }
.form-error, .errordescription { color: #a00000; }
button { cursor: pointer; font: inherit; padding: 5px 9px; }
button:disabled { cursor: wait; opacity: .6; }
.placeholder-buttons { margin-top: 6px; }
.placeholder-buttons button { font-size: 12px; margin: 2px; }
.inline-form { display: inline; margin: 0; padding: 0; }
.inline-form button.imgIcon { border: 0; padding: 0; background-color: transparent; vertical-align: middle; }
.action-cell { white-space: nowrap; min-width: 85px; }
.file-panel { margin-top: 24px; }
.file-panel th, .file-panel td { padding: 7px; text-align: left; overflow-wrap: anywhere; }
.file-panel [data-file-upload] { margin-top: 15px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.file-panel progress { width: 200px; }
.file-panel input[type=file] { max-width: 100%; }
.transfer-details { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 8px 12px; }
.transfer-details dt { font-weight: bold; }
.transfer-details dd { margin: 0; overflow-wrap: anywhere; }
.transfer-details pre { box-sizing: border-box; width: 100%; margin: 0; white-space: pre-wrap; font: inherit; }
dialog { max-width: 700px; width: min(80vw, 700px); max-height: 80vh; padding: 22px; border: 1px solid #777; }
dialog::backdrop { background: #0007; }
dialog label { display: inline-block; margin: 6px; }
[hidden] { display: none !important; }
button.copyright { border: 0; background: none; padding: 0; text-align: left; }
@media (max-width: 650px) {
    .plain-form, .transfer-details { grid-template-columns: minmax(0, 1fr); }
    .plain-form label { padding: 0; }
    .plain-form fieldset input[type=datetime-local],
    .plain-form fieldset input[type=number] { display: block; }
    .form-actions { display: flex; flex-wrap: wrap; gap: 8px; }
}
