.input {
    position: relative;
    display: inline-flex;
    &:disabled { cursor: not-allowed; }
    &.icon {
        & > .icon {
            cursor: default;
            position: absolute;
            line-height: 1;
            text-align: center;
            top: 0.4em;
            right: 0.5em;
            margin: auto 0;
            &.link { cursor: pointer; }
            &:not(.link) { pointer-events: none; }
            &:focus { outline: 0 none; }
        }
        &.left {
            & > .icon { left: 0; }
        }
        input {
            margin: 0;
            max-width: 100%;
            flex: 1 0 auto;
            outline: 0;
            text-align: left;
        }
    }
}
