.m-file-field {
    display: grid;
    gap: var(--m-file-field-gap);
    min-width: 0;
}

.m-file-field__label {
    margin: 0;
    color: var(--m-file-field-text-strong);
    font-size: var(--m-file-field-title-size);
    font-weight: var(--m-file-field-title-weight);
    line-height: 1.35;
}

.m-file-field__label-row {
    margin-bottom: calc(var(--m-file-field-gap) * -.25);
}

.m-file-field__control {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--m-file-field-control-gap);
    min-height: var(--m-file-field-min-height);
    min-width: 0;
    padding: var(--m-file-field-padding);
    border: 1px solid var(--m-file-field-border);
    border-radius: var(--m-file-field-radius);
    background: var(--m-file-field-bg);
    color: var(--m-file-field-text);
    box-shadow: var(--m-file-field-shadow);
    cursor: pointer;
    transition:
        background-color 160ms ease,
        border-color 160ms ease,
        box-shadow 160ms ease;
}

.m-file-field__control:hover,
.m-file-field__control:focus-within {
    background: var(--m-file-field-bg-hover);
    border-color: var(--m-file-field-border-hover);
}

.m-file-field__control:focus-within {
    box-shadow: var(--m-file-field-focus-ring);
}

.m-file-field__input {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.m-file-field__preview {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: var(--m-file-field-preview-size);
    height: var(--m-file-field-preview-size);
    border: 1px solid var(--m-file-field-border);
    border-radius: var(--m-file-field-preview-radius);
    background: var(--m-file-field-bg-hover);
    color: var(--m-file-field-accent);
    overflow: hidden;
}

.m-file-field__preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.m-file-field__body {
    display: grid;
    gap: 4px;
    flex: 1 1 auto;
    min-width: 0;
}

.m-file-field__help-trigger {
    position: relative;
    z-index: 2;
}

.m-file-field__control > .m-helper {
    position: relative;
    z-index: 2;
}

.m-file-field__title,
.m-file-field__filename {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.m-file-field__title {
    color: var(--m-file-field-text-strong);
    font-size: var(--m-file-field-title-size);
    font-weight: var(--m-file-field-title-weight);
}

.m-file-field__hint,
.m-file-field__filename {
    color: var(--m-file-field-text-muted);
    font-size: var(--m-file-field-text-size);
    line-height: var(--m-file-field-line-height);
}

.m-file-field__help,
.m-file-field__error {
    color: var(--m-file-field-text-muted);
    font-size: var(--m-file-field-text-size);
    line-height: var(--m-file-field-line-height);
}

.m-file-field__help.m-field-help-bubble {
    color: var(--m-form-text);
}

.m-file-field__error {
    color: var(--m-file-field-accent);
}

@media (max-width: 575.98px) {
    .m-file-field__control {
        align-items: flex-start;
        min-height: max(var(--m-file-field-min-height), 2.75rem);
    }
}
