/* Form */
#upload-form {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
    margin-top: 16px;
}
.upload-form-bottom {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    flex-wrap: wrap;
    column-gap: 0.5em;
    row-gap: 0.25em;
}
#upload-submit {
    /* prevent from growing vertically when flexbox does */
    align-self: start;
}
input[type="number"]#upload-expiry-number,
input[type="number"]#paste-expiry-number {
    width: 3em;
}
#paste-textarea,
select,
input:not([type="file"]) {
    background-color: var(--background-1);
    color: var(--text-0);
    padding: 0.25em;
    border-radius: 0.25em;
    border: 0.125em solid var(--background-3);
}
select:hover,
input[type="submit"]:hover {
    background-color: var(--background-2);
}
select:active,
input[type="submit"]:active:not([type="file"]) {
    background-color: var(--background-3);
}

/* Form file input */
.upload-file-container {
    position: relative;
    height: 180px;
    background-color: var(--background-1);
    padding: 0.5em;
    border-radius: 0.5em;
    border: 0.125em dashed var(--text-gray-0);
    z-index: 0;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.upload-file-container:hover {
    background-color: var(--background-2);
}
.upload-file-container:active {
    background-color: var(--background-3);
}
.upload-file-container > input[type="file"] {
    visibility: hidden;

    position: absolute;
    height: 100%;
    width: 100%;
    z-index: 1;

    box-sizing: border-box;
    padding: 2em;
    /* for some reason this is needed instead of text-align, but only on Chromium */
    text-align-last: center;
}
.upload-file-container:hover {
    cursor: pointer;
}
#drop-title {
    max-width: 320px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* Paste form */
#paste-form {
    display: flex;
    flex-direction: column;
    gap: 0.25em;
    /* horizontal margin is 1em on each side */
    min-width: min(720px, var(--max-vw));
}
#paste-form > .paste-info {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    padding: 0.25em;
    justify-content: space-between;
    background-color: var(--background-1);
    gap: 0.5em;
}
#paste-form > .paste-info > .paste-info-right {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap-reverse;
    gap: 0.25em;
}
#paste-filename {
    max-width: 12em;
}
#paste-extension {
    width: 4em;
}
#paste-textarea {
    font-family: monospace;
    box-sizing: border-box;
    /* TODO: make this wider, but only if not larger than screen */
    width: 100%;
    height: 90vh;
}

/* Upload list */
.uploads-heading {
    margin: 1em 0 0 0;
    font-size: 1.25em;
}
#uploads-container {
    display: flex;
    flex-direction: column;
    gap: 0.5em;
    font-size: 0.75em;
    max-width: 360px;
}
#uploads-container:empty::before {
    content: "None yet!";
}

/* Uploaded file */
#uploads-container > .upload-file {
    padding: 0.5em;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    gap: 0.5em;
}
#uploads-container > .upload-file > .upload-filename {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
#uploads-container > .upload-file.in-progress > .upload-progress-right {
    display: flex;
    flex-direction: row;
    gap: 0.25em;
}

/* Background colors */
#uploads-container > .upload-file.success {
    background-color: var(--background-green-1);
}
#uploads-container > .upload-file.deleted {
    background-color: var(--background-red-1);
}
#uploads-container > .upload-file.failed {
    background-color: var(--background-red-1);
}
#uploads-container > .upload-file.cancelled {
    background-color: var(--background-red-1);
}
#uploads-container > .upload-file.in-progress {
    position: relative;
    background-color: var(--background-1);
}
#uploads-container > .upload-file.in-progress > * {
    z-index: 1;
}
#uploads-container > .upload-file.in-progress > .upload-progress-bar {
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    background-color: var(--background-blue-2);
    z-index: 0;
    transition: width 0.25s;
}

/* Text styling */
#uploads-container > .upload-file.in-progress > .upload-filename {
    font-style: italic;
}
#uploads-container > .upload-file.deleted > .upload-filename {
    text-decoration: line-through;
}
#uploads-container > .upload-file.failed {
    font-weight: bold;
}
