.zm-input {
    all: unset;
    box-sizing: border-box;
    display: block;
    height: var(--input-height);
    padding: 0 var(--spacing-s);
    background: var(--color-background);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius);
    font-family: var(--font-body-family);
    font-size: var(--font-s);
    outline: none;
    width: 100%;
    position: relative;
    z-index: 1;
    color: var(--color-text);

    &:focus {
        box-shadow: 0 0 0 3px var(--color-border);
    }

    &:disabled {
        cursor: wait;
        position: relative;

        &::placeholder {
            color: var(--color-palette-black);
            opacity: 1;
        }
    }

    &.zm-input--small {
        height: var(--input-height-small);
    }
}

.zm-input-error {
    background-color: var(--color-palette-danger-50);
    color: var(--color-palette-white);
    border-bottom-left-radius: var(--border-radius);
    border-bottom-right-radius: var(--border-radius);
    padding-left: calc(var(--spacing-s) * 0.8);
    padding-right: calc(var(--spacing-s) * 0.8);
    padding-top: calc(var(--spacing-s) * 0.8);
    padding-bottom: calc(var(--spacing-xs) * 0.8);;
    margin-top: calc(var(--spacing-xs) * -1);
    font-size: calc(var(--font-xs) * 1.2);
}

.zm-label--hidden {
    width: 1px;
    visibility: hidden;
    display: block;
    white-space: nowrap;
}
